Wie kann ich in GRUB eine ISO-Datei booten? Die ISO-Datei befindet sich auf einer reiserfs-Partition und GRUB kann darauf zugreifen (das wurde bereits getestet).
Wie kann ich in GRUB eine ISO-Datei booten? Die ISO-Datei befindet sich auf einer reiserfs-Partition und GRUB kann darauf zugreifen (das wurde bereits getestet).
Antworten:
Das größte Problem beim Booten einer ISO-Datei ist, dass ISOs, die zum Booten vorgesehen sind, fast immer zum Booten von einer CD vorgesehen sind . Wie in Marcos Blog zu Grub 2 (Schwerpunkt Mine) erklärt:
GRUB kann ISO9660-Images (ISO) lesen. Es kann zum Beispiel die ersten Sektoren laden und booten. Aber die meisten Menschen wissen nicht, ist "was dann?". Was würde das geladene Betriebssystem tun? Es wird höchstwahrscheinlich nach einer CD-ROM suchen, die es nicht findet, und fehlschlagen.
So die Tote-simple-est Art und Weise aus einer zufälligen ISO - Datei zu booten ist es in eine virtuelle Maschine (VirtualBox, VMware oder Virtual PC) als virtuelle CD zu laden und dort zu starten. Das sollte fast immer funktionieren, da es sich bei der VM nicht um eine ISO-Datei handelt, sondern um eine echte CD auf echter CD-Hardware.
Das Booten von einer ISO-Datei auf Bare Metal ist viel schwieriger. Wie Sie dies tun, hängt davon ab, welche Version von Grub Sie verwenden. Die Ergebnisse hängen davon ab, welche ISO-Datei Sie verwenden und wie sie zum Booten konfiguriert wurde. Aus diesem Grund extrahieren die meisten Boot-ISO-from-USB-Tools (Unetbootin, WinToFlash usw.) normalerweise die ISO-Inhalte auf das Laufwerk, da auf diese Weise direkt auf sie zugegriffen werden kann, ohne das zu bootende Betriebssystem zu verwirren.
... nicht sicher. Wenn möglich, sehen Menüeinträge wahrscheinlich Grub4DOS sehr ähnlich, obwohl ich denke, dass der Befehl "map --hook" eine Erweiterung von Grub4DOS ist. Auf der positiven Seite hat Grub eine breitere Dateisystemunterstützung als Grub4DOS.
Ein Hinweis auf Grub mit reiserfs (nicht bestätigt) zeigt an, dass Sie "Ihre Partition mit mounten müssen, notail
damit sie funktioniert".
Memdisk ist eine Option; siehe unten.
Grub4DOS bietet experimentelle "CD-Emulation" , die mit einigen ISOs funktioniert. Leider liest Grub4DOS nur FAT32 / NTFS-Dateisysteme. Laden Sie Grub4DOS herunter.
Hier ist ein Beispieleintrag ( Quelle ):
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
Angeblich kann die Win7 ISO mit diesem Eintrag gebootet werden :
title Windows 7
map (hd0,0)/win7.iso (hd32)
map --hook
chainloader (hd32)
Andere ISOs können mit Memdisk gebootet werden :
title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
kernel /memdisk iso
initrd /hdt.iso
Sie können auch einen Menükonfigurator wie MultiBootISOs.exe von PenDriveLinux verwenden . Legen Sie ISOs auf das Flash-Laufwerk und führen Sie das Dienstprogramm aus, um den Bootloader zu installieren und das Boot-Menü zu konfigurieren.
Hier ist eine Hak5-Episode zur Installation von Grub4DOS.
Hier sind einige Beispiele für Grub2-Einträge. chainloader funktioniert derzeit nicht zum Booten einer ISO, daher müssen diese Einträge (1) Loopback verwenden , um die ISO zu "mounten", und (2) der Linux- Zeile, die die ISO-Datei angibt , so etwas wie iso-scan oder findiso hinzufügen .
Leider gibt es keine generische Möglichkeit, dies zu tun. Jeder unterschiedliche Starteintrag muss an den Inhalt des Ziel-ISO angepasst werden. Die meisten Linux LiveCDs verwenden ISOLINUX als Bootloader. Suchen Sie die Datei isolinux.cfg und überprüfen Sie diesen Starteintrag, um festzustellen , was normalerweise gestartet wird .
Beispieleinträge ( Quelle ):
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
}
Wenn Sie versuchen, eine Nicht-Linux-Live-CD zu starten, haben Sie möglicherweise Pech. Auch hier kann Memdisk helfen :
menuentry "Boot Hardware Detection Tool from iso" {
linux16 /memdisk iso
initrd16 /hdt.iso
}
Sie können dd vom Terminal aus verwenden, um eine ISO-Datei auf eine Partition zu schreiben. Seien Sie vorsichtig, wenn Sie dd wrong verwenden, können Sie alles abwischen. Es sollte ungefähr so aussehen: dd if = Desktop / LinuxCDFile.iso von = / Path / To / Partition