it-swarm.com.de

Wie boote ich von einer .iso-Datei in GRUB2?

Gibt es eine Möglichkeit, dies zu tun?

18
Lincity

Möglicherweise ist es viel einfacher als der Eindruck, den Sie von allen detaillierten Erklärungen im Internet erhalten. Ich habe gerade folgendes unter Ubuntu 12.04 gemacht, um FreeDOS .iso für ein Firmware-Update zu booten

  • Installieren Sie grub-imageboot
  • kopieren Sie Ihre .iso-Datei (en) nach/boot/images /
  • führen Sie update-grub2 aus

Oder kopieren Sie diese:

Sudo -s
apt-get install grub-imageboot
mkdir /boot/images/
cp $YOUR_ISO_FILE.iso /boot/images/

update-grub2

Fertig.

Manchmal müssen Sie möglicherweise zwei weitere Schritte ausführen, bevor Sie update-grub2 ausführen können:

Wenn Sie es noch nie zuvor getan haben, müssen Sie/etc/default/grub bearbeiten, damit Sie beim Booten das Menü grub sehen:

## To show the menu, disable the hidden_timeout, and set a timeout
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

Für einige .iso-Images müssen Sie diese Option möglicherweise in/etc/default/grub-imageboot hinzufügen: (Ich brauchte sie für mein FreeDOS .iso.)

ISOOPTS="iso raw"

Wenn Sie eine dieser Konfigurationen bearbeitet haben. Dateien müssen Sie update-grub2 erneut ausführen.

pdate: Hier ist der resultierende Menüeintrag von "dma_k"

menuentry "Bootable ISO Image: SV100S2_64_128_120229" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 6ca082d0-63d0-48c3-9e5f-2ce5d7a74fe4
    linux16 /boot/memdisk iso raw
    initrd16 /boot/images/SV100S2_64_128_120229.iso
}

Dies war für ein FreeDOS-Image mit einem Firmware-Update oder ähnlichem.

9
mivk

Ich gehe davon aus, dass Sie dem Menü GRUB einen .iso-Eintrag hinzufügen und ihn starten möchten.

Ich fand diese Info in Ubuntu-Foren

8
Mark Rooney

Ich bin auf dieses Problem gestoßen, weil ich es leid war, unzählige bootfähige ISO 9660-Images zu brennen, und wollte daher GRUB 2 bis bootstrap ein FreeDOS-Image zum Aktualisieren der Firmware/des Mikrocodes von Seagate-Festplatten verwenden. Als Ergänzung oder Alternative zur Antwort von mivk (mit memdisk von syslinux) hatte ich Folgendes getan, um die Macht von GRUB 2 zu nutzen:

  1. Installieren Sie das syslinux-common -Paket (für die Verwendung von memdisk; grub-imageboot ist ein nicht notwendiges Hooking-Paket).
  2. Drücken Sie die Taste 'c' (Mnemonik für Befehl), um die Eingabeaufforderung der in GRUB 2 integrierten Mini-Shell (oder genauer gesagt der minimalen BASH-ähnlichen Shell) zu aktivieren.
  3. Geben Sie die 3 Befehlszeilen in der Mini-Shell von GRUB 2 ein:
   linux16 (hd0,gpt2)/usr/lib/syslinux/memdisk iso raw
   initrd16 (hd0,gpt3)/myUserAccount/download/Barracuda-ALL-GRCC4H.iso
   boot
   # where Barracuda-ALL-GRCC4H.iso is a FreeDOS-based ISO 9660 image, and 
   # the mathematical 2-tuples or ordered pairs, (hd0,gpt2) and (hd0,gpt3), 
   # are GRUB 2's respective device notations for my rootfs partition 
   # (e.g., /dev/sda2) and home partition (e.g., /dev/sda3).
   # NOTE: This procedure also applies to Seagate's SeaTools (based on 
   #       FreeDOS as well); just substitute the file SeaToolsDOS223ALL.iso 
   #       for Barracuda-ALL-GRCC4H.iso.

Informationen zu memdisk von syslinux finden Sie unter http://www.syslinux.org/wiki/index.php/MEMDISK

Durch Manipulieren von Befehlen direkt in der Mini-Shell ist dieses Verfahren flexibler und einfacher als die meisten der oben genannten Methoden, da Sie nicht jedes Mal, wenn Sie eine ausprobieren möchten, die Konfigurationen von GRUB 2 anpassen und aktualisieren müssen andere Linux-Distribution oder eine BSD-basierte Live-CD.

Derzeit können diese 4 Befehlszeilen als generisches Muster in der Mini-Shell von GRUB 2 verwendet werden, dh als loopback-linux-initrd-boot Sequenz plus einige Argumente, die an den angegebenen Kernel übergeben wurden, z. B. an bootstrap so viele gängige Linux-ISO-Images wie möglich (in diesem Fall mit 3 Kernel-Befehlszeile) Argumente für System Rescue CD):

   loopback lb (hd0,gpt3)/myUserAccount/download/systemrescuecd-x86-3.7.0.iso
   linux (lb)/isolinux/rescue64 isoloop=systemrescuecd-x86-3.7.0.iso setkmap=us docache
   initrd (lb)/isolinux/initram.igz
   boot

N.B. Der Teil loopback des generischen Musters ist für Linux streng genommen nicht obligatorisch, wenn Sie eine Linux-Distribution wie ein Debian-Derivat installieren möchten, ohne eine optische Disk zu verschwenden.

3
pseudonym

http://ansi.interblc.com/2010/02/06/howto-boot-iso-images-via-grub2-with-ubuntu/

  1. Wechseln Sie in das Verzeichnis /etc/grub.d.
  2. Fügen Sie hier Ihre ISO-Images hinzu, die mit 50 beginnen. Zum Beispiel sieht mein Eintrag für das normale Ubuntu-ISO-Image (50_ubuntu) so aus:

echo "Adding $(egrep menu[e]ntry $0 | cut -d'"' -f2)" >&2
cat << EOF
menuentry "Ubuntu 10.04 Daily Build" {
loopback loop (hd0,3)/ansi/software_and_config/ISOs/ubuntu/lucid-desktop-i386.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ansi/software_and_config/ISOs/ubuntu/lucid-desktop-i386.iso file=(loop)/preseed/ubuntu.seed quiet splash bootkbd=sg -- initrd (loop)/casper/initrd.lz
}

Meine ISO-Dateien werden auf sda3 unter/ansi/software_and_config/ISOs/ubuntu/gespeichert. Um es an Ihre Bedürfnisse anzupassen, müssen 3 Elemente geändert werden. Die Loopback-Zeile enthält Ihre Festplatte im Grub-Stil (hdx, yx = 0-> sdax = 1-> sdb usw.) und den Pfad. Das dritte Element, das geändert werden muss, befindet sich in der Linux-Zeile. Speichern Sie diese Datei als "50_ubuntu" in "/etc/grub.d", machen Sie sie mit "chmod a + x 50_ubuntu" ausführbar und aktivieren Sie die Änderungen mit "ubdate-grub". Nach einem Neustart solltest du das Grub-Menü mit der Shift-Taste aktivieren und den neuen Eintrag auswählen können.

(Hinweis: Wenn jemand die richtige [CODE] -Formatierung verwenden kann, wäre das großartig. Ich kann nicht scheinen, dass es richtig funktioniert. --Tyblu)

2
user10551

Wie Mark Rooney sagte, finden Sie eine tolle Anleitung in den Ubuntu-Foren .

Auf diese Weise können Sie von einer ISO-Datei booten, allerdings nur, wenn die ISO dies unterstützt. (Alle aktuellen Ubuntu-Versionen sollten, ebenso wie eine Reihe anderer Distributionen).

Wenn Sie die Installation von der Live-ISO planen, sollten Sie die Datei auf einer anderen Partition als derjenigen ablegen, auf der Sie installieren werden (da Sie nicht auf die Partition schreiben können, auf der Sie ausgeführt werden). Wahrscheinlich wird sich der Installateur trotzdem beschweren. Sie müssen /etc/mtab manuell bearbeiten und den Eintrag entfernen, der der Partition mit der ISO-Datei entspricht.

0
Zifre