2016-08-30 3 views
0

ich lerne, wie man einen grundlegenden OS-Kernel mit https://intermezzos.github.ioQEMU, kein startfähiges Gerät, Windows-Subsystem für Linux

zu bauen habe ich meine .iso-Datei erstellen, und ich bin an dem Punkt, wo ich bin runnning qemu-system-x86_64 -cdrom os.iso wenn ich die Eingabetaste drücken, läuft QEMU ein Fenster mit der folgenden Ausgabe:

Booting from Floppy... 
Boot failed: could not read the boot disk 

Booting from DVD/CD... 
Boot failed: Could not read from CDROM (code 0004) 
Booting from ROM... 
iPXE (PCI 00:03.0) starting execution...ok 
iPXE initializing devices...ok 

iPXE 1.0.0+git-20131111.c3d1e78-2ubuntu1.1 -- Open Source Network Boot Firmware 
-- http://ipxe.org 
Features: HTTP HTTPS iSCSI DNS TFTP AoE bzImage ELF MBOOT PXE Menu 

net0: 52:54:00:12:34:56 using 82549em on PCI00:03.0 (open) 
    [Link:up, TX:0 TXE:0 RX:0 RXE:01] 
Configuring (net0 52:54:00:12:34:56)...ok 
net0: 10.0.2.15/255.255.255.0 gw 10.0.2.2 
Nothing to boot: No such file for directory (http://ipxe.org/2d03e13b) 
No more network devices 

No bootable device. 

ich auf der Website ging in der Ausgabe aufgeführt (http://ipxe.org/2d03e13b) und eine der Spitzen ist, dass ich Use the iPXE command line to perform DHCP manually könnte, aber wenn ich CTRL + B drücken Zugriff auf CLI, ich bin nicht in der Lage, s zu tun O.

Wohin gehe ich als nächstes, um das Problem zu beheben, dass ich meinen .iso nicht booten kann?
Wie kann ich QEMU Zugriff auf Tastatureingabe haben?


UPDATE
Ich weiß nicht, wie, aber ich bin bin jetzt in der Lage CTRL + B zu verwenden IPxE Befehlszeile zuzugreifen.

Dies scheint wie ein guter Ort, um mein Problem zu diagnostizieren, nicht in der Lage zu sein, meine .iso zu booten.

Wonach suche ich?


UPDATE 2
Dank Peter Maydell Vorschlag unten habe ich eine bekannt-gute iso Bild (https://alpinelinux.org/) getestet, qemu-system-x86_64 -cdrom alpine-3.4.3-x86_64.iso läuft und es gebootet perfekt wie ich erwartet hatte.

Ich habe meine Dateien von https://intermezzos.github.io umgeschrieben, um ein neues iso Bild zu erstellen, diesmal kopieren und einfügen den Code aus dem Repository, nur für den Fall, dass ich zuvor Tippfehler eingegeben.

Noch nicht gestartet. Zum nächsten Hinweis ...

+1

Nicht positiv, wie QEMU funktioniert, aber wenn es irgendeine Art von Linux-Kernel-Treiber indirekt verwendet, um CDRom-ISO-Dateien zu mounten, wird es nicht funktionieren.Es ist jedoch eine interessante Frage, und es könnte sich lohnen, sie auf der BashOnWindows Github-Site als Problem zu veröffentlichen (obwohl Sie vorzugsweise 14915 aktualisieren, bevor Sie Ihre Logs veröffentlichen, angeblich gibt es mehr Unterstützung für den Mount-Namespace im letzten Build, als sowie bessere Socket-Unterstützung). –

+1

Hinzufügen einer Notiz hier für andere, die dies finden könnten ... Das Problem ist die ISO, die nicht bootfähig ist, und da dies fehlschlägt, geht es weiter zum nächsten Boot-Gerät und schließlich zu iPXE (Netzwerkstart), die auch wie erwartet scheitert - aber das ist kein Fehler von iPXE – NiKiZe

Antwort

0

einfache Lösung für das Problem. Hat mit Systemen zu tun, die EFI zum Booten verwenden.

source

Ich musste apt-get install grub-pc-bin und dann Bild wieder aufzubauen.

2

Als Erstes prüfen Sie, ob diese Befehlszeile und das ISO-Image auf einem normalen Linux-Hostsystem funktionieren. Das zeigt Ihnen, ob das Problem (a) das Windows-Subsystem für Linux ist, das etwas, auf das QEMU angewiesen ist, nicht korrekt implementiert oder (b) Ihr ISO-Abbild keine bootfähige CD-ROM ist.

Sie können auch versuchen, ein bekanntermaßen gutes ISO-Image zu starten, beispielsweise eines für eine Linux-Distribution.

(Das allgemeine Prinzip hier ist zu versuchen, diagnostische Tests zu tun, den Raum aufteilen in kleinere Abschnitte „was das Problem sein könnte“ und bestimmen, welche Seite Ihr Problem.)

+0

Vielen Dank für den Rat. Ich habe erfolgreich ein Alpine-Linux-Image gebootet, worüber ich mich freue, weil es bedeutet, dass meine Umgebung-Einstellung in Ordnung ist. Jetzt muss ich nur herausfinden, was mit meinem Code nicht stimmt, obwohl ich mir nicht sicher bin, wo ich als Nächstes nachsehen soll, weil ich versuche, zu lernen, indem ich einem Tutorial folge. –

Verwandte Themen