2010-06-18 14:25:36 +0000 2010-06-18 14:25:36 +0000
41
41

grub: загрузка с ISO

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

Ответы (2)

55
55
55
2010-06-18 18:30:23 +0000

Самой большой проблемой при загрузке ISO-файла является то, что ISO-файлы, которые предназначены для загрузки, почти всегда предназначены для загрузки с CD. Как объяснялось на блоге Марко относительно Grub 2 (выделено мной):

GRUB может читать образы ISO9660 (“iso”). Она может, например, загрузить первые несколько секторов и загрузить его. Но большинство людей не понимает, что такое “что тогда?”. Что бы сделала загруженная операционная система? Скорее всего, она будет искать CDROM, который не найдет, и откажется. 0x2 и 0x2 и так далее.** Самый простой способ** загрузиться из случайного ISO-файла - это загрузить его в виртуальную машину (VirtualBox, VMware или Virtual PC) в качестве виртуального CD и загрузить его там. Это почти всегда должно работать, потому что для виртуальной машины это не ISO-файл - это настоящий CD на реальном CD-аппаратном обеспечении.

Загрузка с ISO-файла на пустом металле гораздо сложнее. Как вы это делаете, зависит от того, какую версию Grub вы используете, и результаты могут отличаться в зависимости от того, какой ISO вы используете и как он был настроен для загрузки. Вот почему большинство инструментов boot-ISO-from-USB (Unetbootin, WinToFlash и т.д.) обычно extract the ISO content to the drive – потому что таким образом к ним можно получить прямой доступ, не сбивая с толку загружаемую операционную систему.


Grub 1

… не уверен. Если возможно, пункты меню будут очень похожи на Grub4DOS, хотя я думаю, что команда “map –hook” - это улучшение Grub4DOS. С другой стороны, Grub имеет более широкую поддержку файловой системы, чем Grub4DOS.

Заметка на Grub с reiserfs (неподтверждена) указывает, что вам “нужно смонтировать раздел с notail, чтобы он заработал”.

Мемдиск является опцией; см. ниже.


Grub4DOS

Grub4DOS предлагает экспериментальную “эмуляцию CD” , которая работает с некоторыми ISO. К сожалению, 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)

Другие ISO можно загрузить с помощью Memdisk :

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

Можно также использовать конфигуратор меню, например MultiBootISO.exe с PenDriveLinux . Поместите ISO на флешку и запустите утилиту для установки системного загрузчика и настройки меню загрузки.

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


Grub 2

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

К сожалению, нет общего способа сделать это. Каждый отдельный загрузочный элемент должен быть настроен на содержимое целевого ISO. Большинство LiveCD Linux используют 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
}

Если вы пытаетесь загрузить не-Linux LiveCD, вам может не повезти. И снова, Мемдиск может помочь :

menuentry "Boot Hardware Detection Tool from iso" {
  linux16 /memdisk iso
  initrd16 /hdt.iso
}
1
1
1
2014-09-03 13:55:11 +0000

Вы можете использовать dd из терминала для записи iso-файла в раздел. Просто будьте осторожны, если вы используете dd неправильно, вы можете стереть все. Это должно выглядеть так: dd if=Desktop/LinuxCDFile.iso of=/Path/To/Partition

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

3
9
7
6
21