Arrancar una imagen de disco sin formato en QEMU

25

Tengo un archivo de imagen de disco desde aquí ; esa página dice que puedo arrancar esta imagen con QEMU y el siguiente comando:

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

Eso da un mensaje:

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.

El emulador se carga, pero PilOS falla, lo que significa que hice algo mal:

(probablemente porque PilOS quiere escribir en el bloque 0 pero no puede)

El rawargumento de la línea de comando es, por lo que puedo decir, destinado a pasarse así:

$ 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

Eso falla (creo) porque mi dispositivo de arranque está encendido /dev/sda, bus 0, por lo que uno de los siguientes debería funcionar de acuerdo con la página de manual de QEMU (pero no lo hace):

$ 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

El bus=9argumento que -drivedebería aceptar se interpreta como un nombre de archivo o se ignora por completo.

¿Cómo inicio correctamente una imagen sin formato en QEMU?


Esto es Ubuntu 15.10, ejecutando:

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

Datos sobre la imagen:

$ 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
gato
fuente

Respuestas:

38

La -driveopción toma parámetros que se ven así:

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

... necesita usar comas entre sus "sub" -opciones, no espacios.

Por ejemplo, aquí hay uno que probé para arrancar un CD de instalación de Debian:

qemu-system-x86_64 -drive format=raw,media=cdrom,readonly,file=debian-8.2.0-amd64-DVD-1.iso 
derobert
fuente
¿Cómo se especifica la opción sin formato para la unidad de disquete en lo siguiente qemu-system-x86_64 -fda os.flppara deshacerse de la advertencia?
enthusiasticgeek
1
@enthusiasticgeek está en la página de manual: busque "En lugar de -fda, -fdb, puede usar:" da -drive file=file,index=0,if=floppy... así que debería poder agregar format=rawa eso.
derobert
Ok lo tengo. qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppy¡trabajó! Gracias.
enthusiasticgeek
2
@ Mr.Hyde considerando que funcionó tanto para mí como para OP, ¡eso es extraño! ¿Cuál es la línea de comando completa? Tal vez sería mejor hacer una nueva pregunta, puede hacer referencia a esta en su pregunta.
derobert
1
@ Mr.Hyde No tiene una -drivediscusión allí, así que esa parece ser una pregunta diferente. Te sugiero que hagas tu propia pregunta.
derobert