
Ich versuche, einen Linux-Kernel, eine Ramdisk und ein Laufwerk mit QEMU zu booten:
qemu -initrd ramdisk.cpio.gz -kernel mylinux.i686 -m 1024 -append console=ttyS0,38400 -serial file:serial.out -hdd raw.img
Beim Booten sehe ich das Laufwerk nicht unter /dev. Das Hauptziel ist, dass mein Laufwerk erkannt wird. Weitere Informationen:
- Ich habe raw.img über qemu-img erstellt. Es ist 3 GB groß und im Raw-Format
- Ich kann raw.img über eine andere Linux-Distribution erkennen und mounten: tinycore_3.5.1.iso
- /dev/hdd existiert auf der mylinux-Seite nicht, ebenso wenig wie /dev/hd*
- Ich sehe unter /sys/class/block nichts, was mich glauben lassen würde, dass das Laufwerk vom Kernel erkannt wurde
- die Ramdisk enthält /init und andere Prozesse. Gehen Sie vorerst davon aus, dass dies mein Root-Volume ist.
- Das System verwendet udev
Ich bin auf diesem Niveau neu bei Linux. Hoffentlich kann mir jemand helfen, die Betriebssystemereignisse zu verstehen. Ich bin davon ausgegangen, dass /sys das ist, was der Kernel als Laufwerk erkennt. udev würde dann auf Kernelereignisse hören und Laufwerksinformationen in Knoten unter /dev übersetzen. Richtig? Ich wäre für alle Erkenntnisse und Schritte zur Fehlerbehebung sehr dankbar. Noch einmal: Das Ziel ist, dass das Laufwerk erkannt wird (d. h. unter /dev angezeigt wird), nicht, davon zu booten.
Antwort1
-hdd steht nicht für „Hard Disk Drive“, sondern für „Hard Disk D“ bzw. die vierte Festplatte (Secondary Slave).
Sie sollten -hda verwenden, um auf die erste Festplatte zu verweisen – den primären Master.
Antwort2
Nach weiterem Debuggen bemerkte ich, dass in den Linux-Bootmeldungen ein Fehler auftrat. Der von mir verwendete Kernel wurde für eine andere Ramdisk erstellt und suchte daher im falschen Verzeichnis nach IDE-Treibern. Nachdem ich meinen Kernel mit meiner Ramdisk abgeglichen hatte, wurde mein Laufwerk erkannt. Eine Sache, die mir dabei half, dies einzugrenzen, war ein Blick auf die Bootmeldungen, in denen ich sah, dass nirgends erwähnt wurde, dass Laufwerke erkannt wurden. Die ersten Meldungen beziehen sich hauptsächlich auf die Hardwareerkennung. Wenn es also nicht da war, wurde es vom Betriebssystem nicht erkannt. Lektion gelernt. Danke für die Hilfe und Vorschläge.