личинка: как загрузиться в раздел ISO

Я скопировал файл ISO в раздел (т.е. dd if=isofile =/dev/sdb1). Как я могу загрузиться в тот раздел через GRUB?

Когда я пробую только chainloader (hd1,0) +1, он говорит неизвестный формат исполняемых файлов.

6
задан 18.06.2010, 17:28

1 ответ

См. мой ответ по своему boot-from-ISO-files вопросу. Используя это как начальная точка, я запустил некоторые тесты со старым жестким диском. Я ранее настроил Grub2 для начальной загрузки флеш-накопителя мульти-ISO, поэтому что я сделал был:

  1. Создайте несколько разделов на старом жестком диске. Это было сделано с помощью адаптера USB К IDE, таким образом, диск появляется как/dev/sdb.

    • Раздел 1: FAT32, ~2GB в размере
    • Раздел 2: бесформатный


  2. Смонтированный первый раздел к/mnt и установленный копия Личинки от моей системы на диск:

    sudo grub-install --no-floppy --root-directory=/mnt /dev/sdb
    


  3. "Записанный" ISO к второму разделу:

    sudo dd if=avg.iso /dev/sdb2
    


  4. Это - вирусный сканер AVG ISO; на моем флеш-накопителе мульти-ISO я использую это для начальной загрузки ISO непосредственно:

    menuentry "AVG Rescue CD" {
       loopback loop /iso/avg.iso
       linux (loop)/isolinux/vmlinuz max_loop=255 vga=791 init=linuxrc iso-scan/filename=/iso/avg.iso
       initrd (loop)/isolinux/initrd.lzm
    }
    

    Для создания этой работы из раздела жесткого диска мы должны отклонить петлевую команду и установить корневое устройство и такой. Мои попытки иметь Grub2 обнаруживают корневое устройство автоволшебно все отказавшие, таким образом, я указал на него на раздел непосредственно. Это работает, но не упустите перечисление устройства Личинки; диск, от которого Вы пытаетесь загрузиться, не может быть (hd0). Вот рабочая запись для раздела ISO:

    menuentry "AVG Rescue CD" {
       linux (hd0,2)/isolinux/vmlinuz max_loop=255 vga=791 init=linuxrc
       initrd (hd0,2)/isolinux/initrd.lzm
    }
    

    Это приводит к загрузочному ISO на разделе.

Это работает, потому что Grub2 может считать файловые системы ISO9660, потому что этот конкретный ISO загружает ОС, которая может справиться с ISO на разделе, и потому что практически все, что загружает ядро, находится в initrd.


При использовании Grub4DOS или Личинки 1 Вы можете вытягивать подобный прием с chainloader. Предположение, что это работает для начальной загрузки Win7 ISO непосредственно (источник):

title Windows 7
  map (hd0,0)/win7.iso (hd32)
  map --hook
  chainloader (hd32)

У Вас может быть удача с этой модификацией (предполагающий, что Вы "записали" ISO к второму основному разделу, (hd0,1); иначе замените надлежащим разделом):

title Windows 7
  map (hd0,1) (hd32)
  map --hook
  chainloader (hd32)

Можно также сойти с рук это:

title Windows 7
  chainloader (hd0,1)

Однако ISO действительно не настроен для начальной загрузки от диска, таким образом, можно столкнуться с другими проблемами.

3
ответ дан 07.12.2019, 16:21

Теги

Похожие вопросы