У меня возникают трудности при попытке загрузить ISO-образ, предоставленный Kasperky. Я попробовал два варианта:

А. Загрузитесь, загрузив ядро:

menuentry "Kaspersky Rescue" {
    # Taken from http://rescuedisk.kaspersky-labs.com/rescuedisk/updatable/kav_rescue_10.iso
    set isofile="/iso/kav_rescue_10.iso"
    echo "Booting from $isofile. Wait for a minute..."
    loopback loop $isofile
    set root=(loop)
    # From $isofile/boot/grub/i386-efi/cfg/kav_menu.cfg
    linux /boot/rescue root=live:CDLABEL=BOOT rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg splash quiet doscsi nomodeset
    initrd /boot/rescue.igz
}

Пробовал варианты ниже, но ничего не получалось:

  • root=live:CDLABEL=BOOT (как указано выше; BOOT - метка USB-диска, как видно, например, из файлового менеджера)
  • root=live:CDLABEL=KRD10
  • root=live:UUID=A1234-1234

Б. Загрузитесь, загрузив весь ISO в память:

menuentry "Kaspersky Rescue" {
    set isofile="/iso/kav_rescue_10.iso"
    set memdisk=/image/memdisk-5.10.bin
    echo "Booting from $isofile. Wait for a minute..."
    linux16 $memdisk
    initrd16 $isofile
}

Вторая попытка идет немного дальше, потому что я смог увидеть параметры загрузчика ISO, но оба они в определенный момент вылетали со следующей ошибкой:

dracut Warning: Can't mount root filesystem
dracut Warning: dracut: FATAL: Failed to mount block device of live image
dracut Warning: dracut: Refusing to continue
mount: special device /dev/sr* does not exist
mount: special device /dev/mapper/live-rw does not exist

Kernel panic - not syncing: Attempt to kill init! exitcode=0x00000100

Pid: 1, comm: init Not tainted 3.4.24-krd10 #1
Call Trace:
[<c090b902>] panic+0x7d/0x171
[<c0429481>] do_exit+0x325/0x6c9
[<c042988b>] do_group_exit+0x66/0x8f
[<c04298c7>] sys_exit_group+0x13/0x17
[<c0912d93>] sys_enter_do_call+0x12/0x22

Я вижу, что системный загрузчик не может найти / смонтировать корневой раздел. Есть ли обходной путь?

1 ответ1

0

Ubuntu ISOboot от Grub2 подсказывает мне, что вам может понадобиться указать устройство хранения, на котором находится ваш ISO. В первом примере loopback loop $isofile может потребоваться изменить на loopback loop (hd0,5)$isofile или любой другой диск, на котором фактически хранится ISO. Эта часть hd0,5 - не нотация Linux, а способ, которым Grub может видеть большинство устройств хранения.

Я никогда не пытался загрузить ISO напрямую из Grub, но может потребоваться указать местоположение жесткого диска, как это видно из Grub. Я также предполагаю, что вы не хотите или не можете записать ISO-образ на (пере) перезаписываемый диск, или хотите / можете загрузить его с внешнего USB-устройства.

Надеюсь, что это поможет вам понять, почему файлы не могут быть найдены загрузчиком самого ISO или Grub в первом примере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .