Mem-boot image disk mentah di QEMU


25

Saya memiliki file gambar disk dari sini ; halaman itu mengatakan saya bisa mem-boot gambar ini dengan QEMU dan perintah berikut:

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

Itu memberi pesan:

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.

Emulator memuat, tetapi PilOS lumpuh, yang berarti saya melakukan sesuatu yang salah:

(mungkin karena PilOS ingin menulis ke blok 0 tetapi tidak bisa)

The rawargumen baris perintah adalah, sejauh yang saya tahu, dimaksudkan untuk diteruskan seperti ini:

$ 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

Itu gagal (saya pikir) karena perangkat boot saya aktif /dev/sda, bus 0, jadi salah satu dari berikut ini akan berfungsi sesuai dengan halaman manual QEMU (tetapi tidak):

$ 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

The bus=9argumen bahwa -driveharus menerima adalah baik diartikan sebagai nama file, atau benar-benar diabaikan.

Bagaimana cara mem-boot gambar mentah dengan benar di QEMU?


Ini adalah Ubuntu 15.10, berjalan:

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

Data tentang gambar:

$ 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

Jawaban:


38

The -drivepilihan mengambil parameter yang terlihat seperti ini:

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

... Anda harus menggunakan koma di antara "sub" -pilihannya, bukan spasi.

Sebagai contoh, ini adalah salah satu yang saya uji untuk mem-boot CD Debian Installer:

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

bagaimana Anda menentukan opsi baku untuk floppy drive di bawah ini qemu-system-x86_64 -fda os.flpuntuk menghilangkan peringatan?
Antusiasme

1
@enthusiasticgeek ada di halaman manual — cari "Sebagai ganti -fda, -fdb, Anda dapat menggunakan:" memberikan -drive file=file,index=0,if=floppy... jadi Anda harus dapat menambahkannya format=raw.
derobert

OK mengerti. qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppybekerja! Terima kasih.
Antusiasme

2
@ Mr.Hyde mempertimbangkan itu bekerja untuk saya dan OP, itu aneh! Apa baris perintah penuh? Mungkin akan lebih baik untuk mengajukan pertanyaan baru, Anda dapat merujuk ini dalam pertanyaan Anda.
derobert

1
@ Mr.Hyde Anda tidak memiliki -driveargumen di sana, jadi itu sepertinya pertanyaan yang berbeda. Sarankan Anda mengajukan pertanyaan Anda sendiri.
derobert
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.