Beim Booten von „Linux from Scratch“ wird die Eingabeaufforderung # nicht angezeigt

Beim Booten von „Linux from Scratch“ wird die Eingabeaufforderung # nicht angezeigt

Ich habe verfolgtEin minimales Linux-System von Grund aufum ein Linux mit geringem Platzbedarf (10 MB oder weniger) zu erstellen.

Ich bin ziemlich sicher, dass bis zum letzten Punkt, an dem ich das Bild tatsächlich teste, mit dem Befehl keine Fehler aufgetreten sindqemu-system-i386 -L . -hda minux.img

Anstatt tatsächlich zur #Eingabeaufforderung zu booten, wie im Tutorial gezeigt, werde ich von der Grub Rescue-Eingabeaufforderung begrüßt. Um zu versuchen, zu booten, habe ich kernel /boot/kernel_namethen verwendet boot, was letztendlich mit folgendem Ergebnis fehlschlägt: Grub 2 Ausgabe

Meines grub.confist unten, identisch mit dem im Tutorial:

default 0
timeout 30
title Minux
root (hd0,0)
kernel /boot/vmlinux-2.6.21-1 root=/dev/hda1 rw

Der einzige Unterschied, den ich bisher feststellen konnte, war fdisk, wo mein Startsektor 2048 ist, da dies das Minimum ist, das ich mit fdisk einstellen kann, und der Offset daher größer ist. Ein weiterer Unterschied ist, dass ich x86_64-pc grub verwende und einige meiner Busybox-Bibliotheken anders benannt sind, aber das sollte den Bootvorgang nicht beeinträchtigen.

Wie kann ich das Verfahren so anpassen, dass mein Linux funktioniert? Oder gibt es eine bessere Möglichkeit, eine Linux-Distribution mit weniger als 10 MB zu erstellen?

Antwort1

Lassen Sie mich versuchen, die zweite Frage zum Erstellen eines kleinen Systems zu beantworten. Da wir auf x86 aufbauen, gehe ich davon aus, dass es darum geht, ein System zu erstellen, das von einem Flash-Laufwerk gebootet werden kann, und nicht darum, es in eingebettete Chips zu brennen, was eine ganz andere Geschichte wäre.

Erwägen Sie das Löschen von Disk-Images und verwenden Sie ein CPIO-Initramfs. Booten Sie dann wie folgt.

qemu-system-i386 -kernel vmlinuz -initrd root.cpio.gz

ich finde das toll, weil wir mehr Flexibilität haben und uns nicht mit den Datenträgerspeicherorten herumschlagen müssen.

ich schlage auch vorgrub4dosder Bootloader. Trotz des "DOS" im Namen kann er von Linux aus installiert werden und Linux-Kernel booten. Die Installation ist so einfach wie das Schreiben eines MBR und das Kopieren einer 213k-Datei nachjede Partition. und grub4dos erkennt viele Dateisysteme.


außerdem scheint es so, als ob Sie Grub in Ihrer Konfiguration nicht richtig eingerichtet haben, denn es gibt eineRettungDie Konsole hat angezeigt, dass …, obwohl Sie kernel /boot/kernel_namevorher „root=“ eingeben sollten boot.

und auf meiner Maschine erkennt der QEMU-Gastkernel das Disk-Image als „/dev/sda“ statt „/dev/hda“.

verwandte Informationen