личинка: начальная загрузка от ISO

Как я могу загрузиться в файл ISO в GRUB? Файл ISO находится на reiserfs разделе, и GRUB может получить доступ к нему (уже протестировал это).

41
задан 18.06.2010, 18:26

1 ответ

Самая большая проблема с начальной загрузкой файла ISO состоит в том, что ISOs, которые разработаны, чтобы быть загруженными, почти всегда разрабатываются, чтобы быть загруженными с CD. Как объяснено на блоге Marco относительно Личинки 2 (шахта акцента):

GRUB может считать ISO9660 (” ISO”) изображения. Это может, например, загрузить первые несколько секторов и загрузить его. Но большинство людей не понимает, “что затем?”. Что сделала бы загруженная операционная система? Это будет, скорее всего, искать CD-ROM, который это не найдет, и сбой.

Таким образом, очень просто-установленный способ загрузиться из некоторого случайного файла ISO состоит в том, чтобы загрузить его в виртуальную машину (VirtualBox, VMware или Виртуальный ПК) как виртуальный CD и загрузить его там. Это должно почти всегда работать, потому что к VM, это не файл ISO - это - реальный CD на реальных аппаратных средствах CD.

Начальная загрузка из файла ISO на чистом металле намного более трудна. Как Вы делаете это зависит, на которой версии Личинки Вы используете, и результаты могут отличаться в зависимости от того, что ISO Вы используете и как это было настроено для начальной загрузки. Поэтому большинство boot-ISO-from-USB инструментов (Unetbootin, WinToFlash, и т.д.) обычно извлекает содержание ISO к диску - потому что тот путь к ним можно получить доступ непосредственно, не путая загружаемую ОС.


Личинка 1

...не уверен. Если возможно, записи меню, вероятно, посмотрят много как Grub4DOS, хотя я думаю "карта - рычаг" команда является улучшением Grub4DOS. Зато, Личинка имеет более широкую поддержку файловой системы, чем Grub4DOS.

Примечание по Личинке с (неподтвержденным) reiserfs указывает, что "необходимо смонтировать раздел с notail чтобы это работало".

Memdisk является опцией; посмотрите ниже.


Grub4DOS

Grub4DOS предлагает некоторую экспериментальную "эмуляцию CD", которая работает с некоторым ISOs. К сожалению, Grub4DOS только читает файловые системы FAT32/NTFS. Загрузите Grub4DOS.

Вот демонстрационная запись (источник):

title fdfullcd.iso (0xFF)
  find --set-root /fdfullcd.iso
  map /fdfullcd.iso (0xFF)
  map --hook
  root (0xFF)
  kernel /isolinux/data/memdisk
  initrd /isolinux/data/fdboot.img

Предположительно, Win7 ISO может быть загружен с этой записью:

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

Другой ISOs может быть загружен с Memdisk:

title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
  kernel /memdisk iso
  initrd /hdt.iso

Можно также использовать конфигуратор меню как MultiBootISOs.exe от PenDriveLinux. Поместите ISOs во флеш-накопитель и выполните утилиту, чтобы установить загрузчик и настроить меню начальной загрузки.

Вот эпизод Hak5 при установке Grub4DOS.


Личинка 2

Вот является несколько примеров записями Grub2. chainloader не работает для начальной загрузки ISO в настоящее время, таким образом, эти записи должны (1) использовать обратную петлю, чтобы "смонтировать" ISO и (2) добавить что-то как изосканирование или findiso к строке Linux, которая указывает файл ISO.

К сожалению, нет никакого универсального способа сделать это. Каждая различная запись загрузки должна быть настроена к содержанию целевого ISO. Большая часть Linux LiveCDs использует ISOLINUX в качестве загрузчика; найдите isolinux.cfg и исследуйте ту запись загрузки для наблюдения то, что это обычно загружает.

Записи в качестве примера (источник):

menuentry "Ubuntu Live 9.10 32bit" {
 loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
}

menuentry "Grml small 2009.10" {
  loopback loop /boot/iso/grml-small_2009.10.iso
  linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
  initrd (loop)/boot/grmlsmall/initrd.gz
}

При попытке загрузить LiveCD не-Linux, можно не повезти. Снова, Memdisk может помочь:

menuentry "Boot Hardware Detection Tool from iso" {
  linux16 /memdisk iso
  initrd16 /hdt.iso
}
55
ответ дан 07.12.2019, 08:43

Теги

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