Démarrer une image disque brute dans QEMU


25

J'ai un fichier d'image disque d' ici ; cette page indique que je peux démarrer cette image avec QEMU et la commande suivante:

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

Cela donne un message:

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.

L'émulateur se charge, mais PilOS se bloque, ce qui signifie que j'ai fait quelque chose de mal:

(probablement parce que PilOS veut écrire sur le bloc 0 mais ne peut pas)

Pour rawautant que je sache, l'argument de la ligne de commande est censé être passé comme ceci:

$ 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

Cela échoue (je pense) parce que mon périphérique de démarrage est allumé /dev/sda, le bus 0, donc l'un des éléments suivants devrait fonctionner selon la page de manuel de QEMU (mais pas):

$ 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

L' bus=9argument qui -drivedoit accepter est soit interprété comme un nom de fichier, soit complètement ignoré.

Comment démarrer correctement une telle image brute dans QEMU?


Voici Ubuntu 15.10, en cours d'exécution:

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

Données sur l'image:

$ 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

Réponses:


38

L' -driveoption prend des paramètres qui ressemblent à ceci:

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

... vous devez utiliser des virgules entre ses "sous" options, pas des espaces.

Par exemple, voici celui que j'ai testé pour démarrer un CD d'installation Debian:

qemu-system-x86_64 -drive format=raw,media=cdrom,readonly,file=debian-8.2.0-amd64-DVD-1.iso 

comment spécifiez-vous l'option brute pour le lecteur de disquette dans ce qui suit qemu-system-x86_64 -fda os.flppour se débarrasser de l'avertissement?
enthousiastegeek

1
@enthusiasticgeek c'est dans la page de manuel - recherchez "Au lieu de -fda, -fdb, vous pouvez utiliser:" donne -drive file=file,index=0,if=floppy... donc vous devriez pouvoir ajouter format=rawà cela.
derobert

ok j'ai compris. qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppytravaillé! Merci.
enthousiastegeek

2
@ Mr.Hyde considérant que cela a fonctionné pour moi et OP, c'est étrange! Quelle est la ligne de commande complète? Il serait peut-être préférable de poser une nouvelle question, vous pouvez faire référence à celle-ci dans votre question.
derobert

1
@ Mr.Hyde Vous n'avez pas d' -driveargument là-bas, donc cela semble être une question différente. Je vous suggère de poser votre propre question.
derobert
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.