我有一个 QEMU VM,需要在不同的主机上运行。它在具有硬件加速的 macOS 主机上运行良好 ( -accel hvf
)。
虽然 Hyper-V 在我的 Windows 11 主机上运行良好(例如,我可以使用 Linux 客户机设置并运行实例),但 QEMU 8 出现-accel whpx
错误:
qemu: WHPX: Failed to emulate MMIO access with EmulatorReturnStatus: 2
qemu: WHPX: Failed to exec a virtual processor
根据https://www.reddit.com/r/VFIO/comments/l9bl8b/comment/h0bdxib/,QEMU 中的 WHPX 在版本 5.2 之后损坏(qemu-w64-setup-20210208.exe 来自https://qemu.weilnetz.de/w64/2021/)。查看完整的 reddit 帖子,一些发帖者使用 修复了此问题-accel whpx,kernel-irqchip=off
。但是,这对我来说没有任何改变。我仍然收到相同的错误消息。
现在,恢复到 QEMU 5.2 后,出现以下错误:
C:\Program Files\qemu\qemu-system-x86_64.exe: Property 'pc-q35-5.2-machine.i8042' not found
我的完整命令是:
"C:\Program Files\qemu\qemu-system-x86_64.exe" ^
-L "C:\Program Files\qemu" ^
-nodefaults ^
-vga none ^
-device e1000,mac=0A:AD:47:06:D2:2C,netdev=net0 ^
-netdev user,id=net0 ^
-device vmware-svga ^
-cpu Penryn,+sse4.1,+sse4.2,+ssse3 ^
-smp cpus=1,sockets=1,cores=1,threads=1 ^
-machine q35,vmport=off,i8042=off,hpet=off ^
-accel whpx ^
-global ICH9-LPC.disable_s3=1 ^
-drive "if=pflash,format=raw,unit=0,file.filename=C:\Program Files\qemu\edk2-x86_64-code.fd,file.locking=off,readonly=on" ^
-drive "if=pflash,unit=1,file=C:\Users\boe\Documents\mabam\Drives\efi_vars.fd" ^
-m 4096 ^
-usb ^
-device usb-tablet,bus=usb-bus.0 ^
-device usb-mouse,bus=usb-bus.0 ^
-device usb-kbd,bus=usb-bus.0 ^
-device nec-usb-xhci,id=usb-controller-0 ^
-device ide-hd,bus=ide.0,drive=EFI,bootindex=0 ^
-drive "if=none,media=disk,id=EFI,file=C:\Users\boe\Documents\mabam\Drives\efi.qcow2,discard=unmap,detect-zeroes=unmap" ^
-device ide-hd,bus=ide.1,drive=SLHD,bootindex=1 ^
-drive "if=none,media=disk,id=SLHD,file=C:\Users\boe\Documents\mabam\Drives\SystemHDD.qcow2,discard=unmap,detect-zeroes=unmap" ^
-device virtio-rng-pci
在 QEMU 8 上(将第 2 行更改为-L "C:\Program Files\qemu\share" ^
,添加\share
到 edk2-x86_64-code.fd 目录并删除-accel whpx ^
),它可以启动并运行良好,即使我使用-machine pc-q35-5.2
iso-machine q35
来验证我的 VM 映像的向后兼容性。只是它的速度非常慢,因为它缺乏加速,因此无法使用。
由于 QEMU 5.2 似乎是我唯一的机会,我该如何修复以下错误(如上所述)?
C:\Program Files\qemu\qemu-system-x86_64.exe: Property 'pc-q35-5.2-machine.i8042' not found