gladilov.org.ru gladilov.org.ua

Проверка раздела в образе диска

Часто сталкиваюсь с ситуацией, когда при попытке запуска в  QEMU виртуалки с образа диска (в основном IMG) возникает ошибка Kernel panic — not syncing: Attempted to kill init!: Показать

Пример ошибки:

sd 0:0:0:0: [sda] Attached SCSI disk
smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@fluxnic.net>
eth0: SMC91C11xFD (rev 1) at d089a000 IRQ 25 [nowait]
eth0: Ethernet addr: 52:54:00:12:34:56
mousedev: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 17
input: AT Raw Set 2 keyboard as /devices/fpga:06/serio0/input/input0
input: ImExPS/2 Generic Explorer Mouse as /devices/fpga:07/serio1/input/input1
EXT2-fs (sda2): error: couldn't mount because of unsupported optional features (244)
EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (sda2): recovery complete
EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 8:2.
devtmpfs: mounted
Freeing init memory: 120K
Kernel panic - not syncing: Attempted to kill init!
[<c0032bec>] (unwind_backtrace+0x0/0xf0) from [<c03064dc>] (panic+0x58/0x170)
[<c03064dc>] (panic+0x58/0x170) from [<c0044054>] (do_exit+0x5d0/0x68c)
[<c0044054>] (do_exit+0x5d0/0x68c) from [<c004435c>] (do_group_exit+0x40/0xb0)
[<c004435c>] (do_group_exit+0x40/0xb0) from [<c004ed48>] (get_signal_to_deliver+0x1a8/0x378)
[<c004ed48>] (get_signal_to_deliver+0x1a8/0x378) from [<c002f124>] (do_signal+0x90/0x518)
[<c002f124>] (do_signal+0x90/0x518) from [<c002fa64>] (do_notify_resume+0x48/0x54)
[<c002fa64>] (do_notify_resume+0x48/0x54) from [<c002cc38>] (work_pending+0x24/0x28)

Вероятно, эта ошибка возникает при отсутствии флага проверки файловой системы (возможно, в корне ФС лежит пустой файл с именем /forcefsck). Борюсь с этим так. Командой fdisk получаю сектор начала ФС (допустим — 217156), умножаю его на размер сектора (обычно 512 байт) и получаю смещение (в данном примере — 111183872 байт). С этим смещением монтирую на спецдевайс /dev/loop0 IMG-файл. Провожу проверку с лечением возможных повреждений ФС, затем убираю монтирование спецдевайса.

sudo fdisk -l <имя образа>.img
sudo losetup -o <смещение * 512> /dev/loop0 <имя образа>.img
sudo fsck -fv /dev/loop0
sudo losetup -d /dev/loop0

Источники:
http://web.archive.org/web/20161224011451/http://blog.3mdeb.com/2015/12/30/emulate-rapberry-pi-2-in-qemu/
https://raspberrypi.stackexchange.com/questions/40854/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block179-6

Популярное
Наверх