Wie gebe ich ein ISO als Speicherort des Root-Dateisystems für GRUB an?

Wie gebe ich ein ISO als Speicherort des Root-Dateisystems für GRUB an?

Ich versuche, das Debian zu verstehen"Booten von der Festplatte"Installationsanleitung.

Der Vorgang läuft wie folgt ab: Ich kopiere eine kernel image, eine ramdisk initrdund eine ISOmit dem Installer auf die Festplatte und konfiguriere dann GRUB, um den Kernel und die Ramdisk zu starten. Außerdem muss ich GRUB mitteilen, wo sich das Root-Dateisystem befindet (es sollte sich auf der ISO-Datei befinden), damit der Kernel das Root-Dateisystem dorthin verschieben kann. Aber dieVon Debian bereitgestellte Grub-Konfigurationenscheint die gesamte Festplatte als Root-Dateisystem anzugeben, nicht die ISO-Datei darin:

GRUB1:

title  New Install
root   (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz

GRUB2:

menuentry 'New Install' {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
linux /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz
}

Warum sollte das funktionieren? Ist GRUB so intelligent, dass es die ISO-Datei auf der Festplatte als Root-Dateisystem mountet, nicht die ganze Festplatte? Oder muss ich ddden Inhalt der ISO-Datei direkt auf die Festplatte kopieren? Debian ist diesbezüglich vage.

Antwort1

Kopiert aus dem Kommentar von Frostshutz:

initrd.gz (initramfs) enthält das Busybox-Userland und Debian-Skripte, die zu diesem Zweck geschrieben wurden. GRUB2 unterstützt auch das direkte Loop-Mounten von ISOs, aber normalerweise nur, um den Kernel/Initrd vom ISO selbst zu holen, und wenn das wieder geladen ist, muss das ISO vom Kernel/Initrd gefunden und loopgemountet werden.

verwandte Informationen