Я пытаюсь эмулировать архитектуру ARM с помощью QEMU. Мой хост ОС является человечностью 16.04 и гостем ОС в эмулированной машине, является также человечностью 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. Ваша справка высоко ценилась бы.
Заранее спасибо.
Это не ошибка, просто предупреждение. Поскольку Ваши виртуальные диски флэш-памяти являются неструктурированными устройствами (созданный dd
), qemu-система не может, предполагая формат диска. Поэтому записи для блокирования 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