QEMUでrawディスクイメージを起動する


25

ここからディスクイメージファイルがあります。そのページには、QEMUと次のコマンドでこのイメージを起動できると書かれています。

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

それはメッセージを与えます:

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.

エミュレータはロードされますが、PilOSがクラッシュします。つまり、何か間違ったことをしました。

(おそらくPilOSはブロック0に書き込みたいが、できないため)

rawコマンドライン引数は、次のように渡されることを意味し、私の知る限り、次のとおりです。

$ 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

ブートデバイスがオン/dev/sda、バス0であるため、これは失敗します(そのため)

$ 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

bus=9引数-drive受け入れるべきは、いずれかのファイル名として解釈され、または完全に無視されます。

QEMUでそのような生のイメージを適切に起動するにはどうすればよいですか?


これはUbuntu 15.10で、次を実行しています。

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

画像に関するデータ:

$ 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

回答:


38

この-driveオプションは、次のようなパラメーターを取ります。

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

...スペースではなく、「サブ」オプションの間にコンマを使用する必要があります。

たとえば、Debian Installer CDを起動するためにテストしたものは次のとおりです。

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

qemu-system-x86_64 -fda os.flp警告を取り除くために、以下でフロッピードライブのrawオプションをどのように指定しますか?
enthusiasticgeek

1
@enthusiasticgeekのマニュアルページにあります。「-fda、-fdbの代わりに、次のように使用できます」を検索すると-drive file=file,index=0,if=floppy...が表示されるので、追加できますformat=raw
デロバート

はい、わかった。qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppy働いた!ありがとう。
熱狂的な

2
@ Mr.Hydeは私とOPの両方でうまくいったと考えていますが、それは奇妙です!完全なコマンドラインとは何ですか?新しい質問をするのが最善かもしれませんが、質問でこの質問を参照できます。
デロバート16

1
@ Mr.Hyde -driveそこには議論がないので、それは別の質問のようです。自分で質問することを提案します。
デロバート16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.