Booten eines Raw Disk Images in QEMU

25

Ich habe eine Disk-Image-Datei von hier ; Diese Seite besagt, dass ich dieses Image mit QEMU und dem folgenden Befehl booten kann:

$ qemu-system-x86_64  -m 4096  -ctrl-grab  -no-reboot  x86-64.img

Das gibt eine Nachricht:

WARNING: Image format was not specified for 'x86-64.img' and probing guessed raw.
     Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
     Specify the 'raw' format explicitly to remove the restrictions.

Der Emulator wird geladen, aber PilOS stürzt ab, was bedeutet, dass ich etwas falsch gemacht habe:

(wahrscheinlich, weil PilOS in Block 0 schreiben möchte, aber nicht kann)

Das rawKommandozeilenargument soll, soweit ich das beurteilen kann, so übergeben werden:

$ qemu-system-x86_64 -drive format=raw file=x86-64.img 
qemu-system-x86_64: -drive format=raw: drive with bus=0, unit=0 (index=0) exists

Das schlägt fehl (glaube ich), weil mein Startgerät eingeschaltet ist /dev/sda(Bus 0). Eine der folgenden Optionen sollte gemäß der QEMU-Manpage funktionieren (tut es aber nicht):

$ qemu-system-x86_64 -drive bus=9 format=raw file=x86-64.img 
qemu-system-x86_64: -drive bus=9: Could not open 'format=raw': No such file or directory
$ qemu-system-x86_64 -drive format=raw file=x86-64.img bus=9
qemu-system-x86_64: -drive format=raw: drive with bus=0, unit=0 (index=0) exists

Das bus=9Argument, -drivedas akzeptiert werden soll, wird entweder als Dateiname interpretiert oder vollständig ignoriert.

Wie starte ich ein solches Raw-Image in QEMU richtig?


Dies ist Ubuntu 15.10 mit:

QEMU emulator version 2.3.0 (Debian 1:2.3+dfsg-5ubuntu9.3), Copyright (c) 2003-2008 Fabrice Bellard

Daten zum Bild:

$ file x86-64.img 
x86-64.img: DOS/MBR boot sector; partition 1 : ID=0x83, active, start-CHS (0x0,1,1), end-CHS (0x82,246,62), startsector 62, 2006072 sectors; partition 2 : ID=0x82, start-CHS (0x83,0,1), end-CHS (0x15,246,62), startsector 2006134, 2006134 sectors

$ fdisk -lu x86-64.img 
Disk x86-64.img: 670 KiB, 686080 bytes, 1340 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device      Boot   Start     End Sectors   Size Id Type
x86-64.img1 *         62 2006133 2006072 979.5M 83 Linux
x86-64.img2      2006134 4012267 2006134 979.6M 82 Linux swap / Solaris
Katze
quelle

Antworten:

37

Die -driveOption akzeptiert folgende Parameter:

qemu-system-x86_64 -drive format=raw,file=x86-64.img 

... Sie müssen Kommas zwischen den "Unter" -Optionen verwenden, keine Leerzeichen.

Zum Beispiel ist hier eine, die ich getestet habe, um eine Debian-Installations-CD zu booten:

qemu-system-x86_64 -drive format=raw,media=cdrom,readonly,file=debian-8.2.0-amd64-DVD-1.iso 
derobert
quelle
Wie legen Sie die Raw-Option für das Diskettenlaufwerk im Folgenden fest qemu-system-x86_64 -fda os.flp, um die Warnung zu beseitigen?
enthusiasticgeek
1
@enthusiasticgeek Es befindet sich auf der Manpage. Suchen Sie nach "Anstelle von -fda, -fdb, können Sie Folgendes verwenden:" ergibt -drive file=file,index=0,if=floppy... Sie sollten also in der Lage sein, dies hinzuzufügen format=raw.
Derobert
OK habe es. qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppyhat funktioniert! Vielen Dank.
enthusiasticgeek
2
@ Mr.Hyde wenn man bedenkt, dass es sowohl für mich als auch für OP funktioniert hat, ist das seltsam! Was ist die vollständige Befehlszeile? Vielleicht ist es am besten, eine neue Frage zu stellen, auf die Sie in Ihrer Frage verweisen können.
Derobert
1
@ Mr.Hyde Du hast da keine -driveAuseinandersetzung, also scheint das eine andere Frage zu sein. Schlagen Sie vor, dass Sie Ihre eigene Frage stellen.
Derobert