web-dev-qa-db-ja.com

QEMUの警告:「 'flash0.img'の画像形式が指定されておらず、プローブが生であると推測しました。」

QEMUを使用してARMアーキテクチャをエミュレートしようとしています。私のホストOSはubuntu 16.04で、エミュレートされたマシン内のゲストOSもubuntu 16.04です。以下は、私がフォローしているチュートリアルです。

    Sudo apt-get install qemu-system-arm qemu-efi

    dd if=/dev/zero of=flash0.img bs=1M count=64
    dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=flash0.img conv=notrunc
    dd if=/dev/zero of=flash1.img bs=1M count=64

    Sudo qemu-system-arm -m 1024 -cpu cortex-a57 -M virt -nographic -pflash flash0.img -pflash flash1.img -drive if=none,file=xenial-server-cloudimg-arm64-uefi1.img,id=hd0 -device virtio-blk-device,drive=hd0 -netdev type=tap,id=net0 -device virtio-net-device,netdev=net0,mac=$randmac

これは私に次のエラーを与えています:

WARNING: Image format was not specified for 'flash0.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.

WARNING: Image format was not specified for 'flash1.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.

QEMUでマシンをエミュレートするのは初めてです。あなたの助けは大歓迎です。

前もって感謝します。

5
D. A

これはエラーではなく、単なる警告です。仮想フラッシュディスクはddによって作成されたrawデバイスであるため、qemu-systemはディスクフォーマットを推測できません。したがって、メッセージが示すように、ブロック0(MBRまたはファイルシステムのスーパーブロックである可能性があります)への書き込みは制限されています。

これを克服するには、ディスク形式をformat=rawとして指定します。定義は次のようになります

Sudo qemu-system-arm -m 1024 -cpu cortex-a57 -M virt -nographic -drive file=flash0.img,format=raw,if=pflash -drive file=flash1.img,format=raw,if=pflash -drive if=none,file=xenial-server-cloudimg-arm64-uefi1.img,id=hd0 -device virtio-blk-device,drive=hd0 -device virtio-net-device,netdev=net0,mac=$randmac -netdev type=tap,id=net0
3
ridgy