tl; dr - Ist es möglich, von einer ISO-Datei zu starten, die sich auf einem unverschlüsselten logischen lmv2-Volume befindet? Wie?
Ich versuche, dies in einer VirtualBox-VM einzurichten, bevor ich es mit meinem Laptop real mache. Ich habe folgendes eingerichtet:
- 4 gpt Partitionen
- gpt1 - 2M ef02 BIOS-Boot
- gpt2 - 5G unverschlüsselt, nicht lvm, für verschiedene Daten, Isos usw.
- gpt3 - 5G unverschlüsseltes lvm, für / boot, iso's usw.
- gpt4 - verbleibend, lvm, verschlüsselt mit dm-crypt / luks, für root, swap, home usw.
- In gpt2 habe ich Kopien der aktuellen Arch- und Xubuntu-Isos
- in gpt3 habe ich ein lvm2 lv mit den gleichen kopien der gleichen isos
Ich habe folgende Arbeit:
- in gpt4 funktionierende Installationen von Arch und Xubuntu (und möchten irgendwann andere Distributionen in anderen logischen Volumes hinzufügen)
- grub2 installiert von Arch on / dev / sda
- Mit dem Befehl configfile von grub2 können Sie über die grub2-Menüs beider Distributionen wechseln und booten
- kann iso's vom grub menu von non-lvm gpt2 booten
Was ich tun möchte, ist von der ISO in gpt3 lvm zu booten (und letztendlich überhaupt nicht die Nicht-lvm gpt2-Partition zu haben).
Mein Madeneintrag ist:
menuentry "Xubuntu ISO" {
set isofile="/xubuntu-12.04.1-desktop-amd64.iso"
# from non-lvm
loopback loop (hd0,gpt2)$isofile
# from lvm
#loopback loop (vgboot-iso)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
Die 2 Loopback-Zeilen zeigen auf 2 verschiedene Kopien derselben ISO. Ich habe an der grub-Befehlszeile überprüft, dass beide Loopback-Zeilen funktionieren.
Beim Booten von der ISO in der Nicht-LVM-Partition funktioniert alles einwandfrei.
Beim Booten von der ISO in der lvm-Partition wird der Boot gestartet und schließlich wird der folgende Fehler angezeigt:
(initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found
Für den Bogeneintrag:
menuentry "Arch ISO" {
set isofile="/archlinux-2012.09.07-dual.iso"
loopback loop (hd0,gpt2)$isofile
#loopback loop (vgboot-iso)$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201209 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/x86_64/archiso.img
}
Das Booten von gpt2 iso funktioniert, aber ich weiß nicht, was ich für "lvm boot" in "/ dev / sda2" ändern soll.
EDIT: Kann das gemacht werden? Für die offizielle .iso-Datei einer aktuellen Linux-Distribution? Fedora? Debian? openSUSE? CentOS?
Ist das unmöglich Oder ist es etwas, an das noch niemand gedacht hat?
EDIT2: Mein Kopfgeld ist längst abgelaufen und nach 9 Monaten gehe ich davon aus, dass dies mit keiner Linux-Distribution möglich ist. Ich werde die Frage offen lassen, aber ich bezweifle, dass es in naher Zukunft jederzeit eine funktionierende Lösung geben wird.
search
ist die des logischen Volumes, das die ISO-Datei enthält, oder? Um es zu bekommen, müssen Sie tunsudo blkid
.Inspiriert von dieser einfachen Lösung für Ubuntu habe ich Folgendes verwendet, das zum Laden einer Fedora 27 KDE-ISO und einer Ubuntu 17.10-ISO funktioniert.
Ich habe gerade die folgenden Zeilen in die Datei eingefügt
/etc/grub.d/40_custom
Erläuterung
set iso_path
definiert den Pfad, in dem sich die ISO-Datei auf dem logischen Volume befindet. Wenn ich mein System starte, liegt es in/home/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso"
, ist aber/home
das gemountete logische Volume, also lasse ich dies weg und beginne den Pfad mit/erik/Downloads/…
Die Zeile, die mit beginnt,
search
hat am Ende eine seltsame alphanumerische Variable (eine sogenannte UUID), die mit beginnt6340
. Ich habe diese Nummer vom Befehl erhaltendas gab mir zusammen mit anderen die folgende Zeile
Eine weitere wichtige Sache, wenn Sie andere ISO-Dateien booten möchten, sind die Zeilen, die mit
linux
und beginneninitrd
. Ich habe sie durch Öffnen der ISO-Datei mitfile-roller
(GUI zum Extrahieren komprimierter Archive) odermc
(Konsolendateimanager) erhalten.Fedora und ähnliches: Dort gehen Sie in das Verzeichnis
/isolinux
, in dem Sie eine Datei namens findenisolinux.cfg
. Dort fand ich einige Zeilen, die mit beginnenlabel
, und darunter die folgenden wichtigen Zeilenmit dem du die letzten beiden Zeilen meines grub2 füllen wirst
menuentry
.Ubuntu und ähnliches: Dort gehen Sie in das Verzeichnis
/boot/grub
, in dem Sie eine Datei namens findengrub.cfg
. Hier finden Sie einige Zeilen, die mit beginnenmenuentry
, und darunter die folgenden wichtigen Zeilenwas Sie einfach kopieren können.
quelle
Ich denke, dass es für die offizielle ISO-Datei der meisten Distributionen nicht möglich ist.
Der Fehler, den Sie erhalten:
bedeutet, dass das Live-System, das Sie starten, beim Booten nach einem CD / DVD-Laufwerk sucht und keines findet.
Live-CDs sind nicht so konfiguriert, dass sie auf einem LVM nach ihrer Quell-ISO suchen. Sie können vielleicht die Boot-Skripte des Images ändern, um dies zu tun, aber ich glaube nicht, dass eine aktuelle offizielle .iso-Datei der Distribution dies tut. Sie können versuchen, die Entwickler Ihrer Lieblingsdistribution zu kontaktieren, um das vielleicht zu integrieren?
quelle
Sie könnten dies versuchen:
Fügen Sie dies am Anfang des Menüeintrags hinzu:
Geben Sie dann Ihre LVM-Partition an mit:
Ihr Xubuntu-ISO-Eintrag würde also folgendermaßen aussehen:
Bitte nehmen Sie die erforderlichen Korrekturen vor.
Dadurch sollte GRUB das lvm2-Volume erkennen und die darin enthaltene ISO-Datei lesen können. Wahrscheinlich wird die ISO jedoch immer noch nicht gefunden ...
quelle
Nur ein Punkt dazu:
Die ISO beim Booten muss die ISO mounten, muss also wissen, wie man sie findet.
Grub2 kann die ISO mit insmod ... -Befehlen sehen, aber das macht nichts anderes, als Grub2 in der ISO lesen zu lassen, sie in einer Schleife zu mounten usw., aber sobald das Linux in der ISO startet, ist LVM / LUKS / loop / etc nicht vorhanden (nicht gemountet), müssen die Boot-Skripte innerhalb der ISO wissen, wie diese LVM / LUKS / Schleife gemountet wird; Wenn Linux nicht dazu bereit ist, kann nicht von dort gebootet werden.
Beispiel ohne LVM, LUKS usw. Wenn eine normale Linux LiveCD-ISO nicht zum Suchen und Mounten einer Schleife in eine ISO-Datei während des Bootens ausgelegt ist, kann sie niemals von Grub2 aus gestartet werden (mit ISO als Datei).
In solchen Fällen benötigen Sie einen Hardware-CD / DVD-Emulator (falls auf realer Hardware) oder montieren Sie einfach die ISO-Datei auf der virtuellen CD / DVD-Einheit einer virtuellen Maschine.
Die andere Möglichkeit besteht natürlich darin, eine solche ISO zu "bearbeiten", um beim Booten einige Skripte zum Suchen und Mounten von LVM / LUKS / usw. einzubeziehen.
quelle