Booten eines Linux Live-Tools von der FreeBSD-UFS2-Partition

525
Keve

Ich möchte eine Live-Linux-CD booten, ohne die CD zu benötigen. Nehmen Sie zum Beispiel GParted oder CloneZilla. Die ich regelmäßig von ihrer Live-CD boote. Ich möchte jedoch auf die Verwendung der CD / DVD-Medien verzichten, da sie langsam, laut und fehleranfällig ist (Kratzer auf der Disc). Ich würde es vorziehen, diese Tools von der Festplatte meines Service- / Reparatur-PCs zu laden, die ich mit WinBub (NTFS) und FreeBSD (UFS2) mit Grub2 dual boote.

Ich habe bereits genug gegoogelt, um zu erfahren, dass das Booten von ISO-Images nicht gut funktioniert (und ich verstehe auch, warum). Die Methode, dies zu tun, besteht darin, den Inhalt der Live-CDs zu extrahieren und diese Dateien direkt zu booten.

Folgendes habe ich bisher geschafft:

  • Kopieren Sie die Dateien aus dem ISO-Image in einen Ordner auf der UFS2-Partition.
  • Übersetzen Sie die Isolinux-Menüeinträge der Live-CD in ein grub2-Untermenü.

Wenn ich zur Systemstartzeit eines der Untermenüelemente auswähle, wird der Eintrag gestartet, aber nach einigen vielversprechenden Ausgaben auf dem Bildschirm wird dieselbe enttäuschende Nachricht mehrmals ausgespuckt.

modprobe: module unknown not found in modules.dep 

Ich bin mir ziemlich sicher, wo und warum es versagt. Aber ich kenne die Architektur und das Innenleben dieser Live Linux-Builds nicht genug, um den nächsten Schritt zu tun. Und meine Websuche dazu lieferte mir keine nützlichen Ergebnisse.

Als aktuelles Beispiel werde ich hier die Dateien von der GParted Live-CD verwenden. Die relevanten sind:

  • Dateisystem.Pakete
  • filesystem.squashfs
  • initrd.img
  • vmlinuz

Diese habe ich unter / boot / Gparted / live / auf meiner UFS2-Partition ada0s2a ("hd0, msdos2, bsd1" in grub2-Begriffen) abgelegt.

Die grub2-Einträge, die ich aus den syslinux-Einträgen der Live-CD zusammengestellt habe, sind ...

menuentry "GParted Live" { insmod part_msdos insmod ufs2 set root=(hd0,msdos2,bsd1) linux /boot/Gparted/live/vmlinuz boot=live config noswap ip=frommedia nosplash initrd /boot/GParted/live/initrd.img } 

und den Eintrag "GParted Live (to RAM)" mit allen Zeilen außer für

 linux /boot/GParted/live/vmlinuz boot=live config noswap noprompt toram=filesystem.squashfs ip=frommedia nosplash 

Es scheint mir, dass die Datei filesystem.packages in diesen Einträgen nicht erwähnt wird. Ich weiß auch nicht, wie der Linux-Boot-Prozess hier funktionieren soll, aber ich bin überzeugt, dass das Problem, das ich erfahre, darin besteht, dass der geladene Kernel + initrd versucht, Daten zu verwenden, die in den Dateisystem.packages oder Dateisystem.squashfs gespeichert sind Bilder und es findet sie nicht.

Um das Problem zu lösen, sollte ich dem Kernel helfen, indem ich ihm erzähle, wo sich diese Image-Dateien befinden. Die Frage ist, wie mache ich das? Wo mache ich das?

Der Verweis auf das Dateisystem.packages kann sich irgendwo in der initrd.img befinden . Ich kann gunzip und cpio verwenden, um den Inhalt dieser Bilddatei zu extrahieren. Aber ich weiß immer noch nicht, wonach ich suchen soll. Ich bin auch nicht überzeugt, dass ein geladener Linux-Kernel + initrd.img auf Dateien in meinem UFS2-Dateisystem (nicht Linux) zugreifen kann. Vielleicht sollte ich die Dateien auf einer separaten Ext2-Partition ablegen.

Vorschläge, Erklärungen und Hinweise sind willkommen!

1

1 Antwort auf die Frage

1
Keve

LÖSUNG GEFUNDEN!

Die Seite " GParted Live auf Festplatte " beschreibt sehr gut, was erforderlich ist, um GParted Live von Dateien zu starten, die in einen Ordner auf der Festplatte kopiert wurden. Ich habe hier auch andere Fragen zu SuperUser gefunden, die meiner Frage ähnlich sind. Und ich fand Verweise auf

http://www.kernel.org/doc/Documentation/kernel-parameters.txt 

und

https://www.kernel.org/doc/Documentation/x86/boot.txt 

Beide sind ausgezeichnete Dokumente des eigenen Themas, haben sich aber als völlig unbrauchbar für mein Problem erwiesen. Erstens, weil sie viel zu viele Details zum Durchlesen enthalten, und zweitens, weil die Argumente, nach denen ich gesucht hatte, NICHT enthalten waren. Daher zeige ich sie hier bewusst nicht als Link, sondern nur als Text.

Einige wichtige Details zur Kenntnis:

  • Das Live-System konnte NICHT ordnungsgemäß booten, wenn sich die Dateien auf meiner UFS2-Partition befanden, da das auf Debian basierende GParted-Image nicht auf ufs-Dateisysteme zugreifen kann. Dies steht im Widerspruch zu der Tatsache, dass ich, wenn ich die eigentliche Live-CD starte und ein XTerm öffne, meine UFS2-Partition immer aktivieren kann. Anscheinend kommt diese Ufs-Handhabungsfähigkeit zu einem späteren Zeitpunkt des Startvorgangs.
  • Das Live-System kann jedoch ordnungsgemäß booten, wenn sich die Dateien auf meiner NTFS-Partition befinden. Ich musste also keine eigene linuxfreundliche Ext2-, Ext3-, Ext4- oder FAT-Partition erstellen. Ich könnte einfach die andere (Win7) -Partition meiner Dual-Boot-Konfiguration verwenden.
  • Die Seite "GParted Live on Hard Disk" (GParted Live auf Festplatte) enthält eine alternative Lösung, mit der grub2 das aktuelle ISO-Image als Loop-Gerät mounten und von diesem booten kann. Diese Möglichkeit hat mir sehr gefallen, aber ich habe es nie geschafft, sie zum Laufen zu bringen.
  • Nachdem ich die Seite "GParted Live on Hard Disk" gelesen hatte, war es sehr einfach, alles zum Laufen zu bringen. Es dauerte weniger als 5 Minuten. Und ich habe das auf meine bestehende Version von gparted-live-0.16.1-1-i486 angewendet, die ich vor einiger Zeit heruntergeladen habe. Sobald alles so lief, wie ich es wollte, habe ich die gleiche Methode mit der neuesten (zum Zeitpunkt der Veröffentlichung, 2016-MAY-25) gparted-live-0.26.0-2-i686-Version ausprobiert (verwendet die ZIP-Datei, da ich es nicht konnte mounten Sie das ISO), aber dies schlägt fehl, wenn Sie ordnungsgemäß booten. JETZT SAGEN! Möglicherweise müssen Sie mehrere Versionen ausprobieren, um eine funktionierende Lösung zu erhalten.

HIER IST DAS, WAS FUNKTIONIERT:

Die vier Dateien aus dem GParted-ISO (oder ZIP), die in meinem ursprünglichen Beitrag erwähnt wurden, wurden in den Ordner / GParted / auf meiner NTFS-Partition kopiert. Sie können Ihrem Ordner einen beliebigen Namen geben. Denken Sie daran, später genau auf diesen Namen zu verweisen. Dann erstelle einen grub2 Menüeintrag wie folgt:

menuentry "GParted Live" { insmod part_msdos insmod ntfs set root=(hd0,msdos1) linux /GParted/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia live-media-path=/GParted bootfrom=/dev/sda1 toram=filesystem.squashfs initrd /GParted/initrd.img } 

Hoffentlich hilft dies anderen nun, ähnliche Probleme zu lösen!