qemu-system-aarch64报-spice无效选项,VM无法启动求助
解决qemu-system-aarch64: -spice: invalid option错误
问题原因
你使用的系统级QEMU未编译SPICE支持,而UTM自带的是定制版QEMU,默认包含SPICE功能。从损坏UTM导出的启动命令依赖SPICE相关参数,直接用系统QEMU执行会出现无效选项错误。
解决方案
1. 使用UTM自带的QEMU执行命令
UTM的QEMU是预编译好支持SPICE的版本,只需将命令开头的qemu-system-aarch64替换为UTM自带的完整路径:
/Users/brandon/Applications/UTM.app/Contents/Resources/qemu/qemu-system-aarch64 -L /Users/brandon/Applications/UTM.app/Contents/Resources/qemu -S -spice "unix=on,addr=/Users/---/Library/Group Containers/WDNLXAD4W8.com.utmapp.UTM/0F075A81-8EDB-4245-B17D-061AA68FD704.spice,disable-ticketing=on,image-compression=off,playback-compression=off,streaming-video=off,gl=on" -chardev spiceport,id=org.qemu.monitor.qmp,name=org.qemu.monitor.qmp.0 -mon chardev=org.qemu.monitor.qmp,mode=control -nodefaults -vga none -device virtio-net-pci,mac=AE:AF:A6:1C:D7:8B,netdev=net0 -netdev vmnet-shared,id=net0 -device virtio-gpu-gl-pci -cpu host -smp cpus=8,sockets=1,cores=8,threads=1 -machine virt -accel hvf -drive if=pflash,format=raw,unit=0,file=/Users/---/Applications/UTM.app/Contents/Resources/qemu/edk2-aarch64-code.fd,readonly=on -drive "if=pflash,unit=1,file=/Users/---/Library/Containers/com.utmapp.UTM/Data/Documents/Windows 11.utm/Data/efi_vars.fd" -m 8192 -device ich9-intel-hda -device hda-duplex -device nec-usb-xhci,id=usb-bus -device usb-tablet,bus=usb-bus.0 -device usb-mouse,bus=usb-bus.0 -device usb-kbd,bus=usb-bus.0 -device qemu-xhci,id=usb-controller-0 -chardev spicevmc,name=usbredir,id=usbredirchardev0 -device usb-redir,chardev=usbredirchardev0,id=usbredirdev0,bus=usb-controller-0.0 -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=usb-controller-0.0 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2,bus=usb-controller-0.0 -device usb-storage,drive=driveD7009BCF-2F84-4263-A943-3D3172E42D37,removable=true,bootindex=0,bus=usb-bus.0 -drive if=none,media=cdrom,id=driveD7009BCF-2F84-4263-A943-3D3172E42D37 -device nvme,drive=drive30D3D5C5-0482-4FF1-AF8B-3EC71F330561,serial=30D3D5C5-0482-4FF1-AF8B-3EC71F330561,bootindex=1 -drive "if=none,media=disk,id=drive30D3D5C5-0482-4FF1-AF8B-3EC71F330561,file=/Users/brandon/Library/Containers/com.utmapp.UTM/Data/Documents/Windows 11.utm/Data/30D3D5C5-0482-4FF1-AF8B-3EC71F330561.qcow2,discard=unmap,detect-zeroes=unmap" -device usb-storage,drive=drive72383F72-3B29-4849-B30A-43C8593DEFD3,removable=true,bootindex=2,bus=usb-bus.0 -drive if=none,media=cdrom,id=drive72383F72-3B29-4849-B30A-43C8593DEFD3 -device virtio-serial -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -chardev spicevmc,id=vdagent,debug=0,name=vdagent -device virtserialport,chardev=charchannel1,id=channel1,name=org.spice-space.webdav.0 -chardev spiceport,name=org.spice-space.webdav.0,id=charchannel1 -name "Windows 11" -uuid 0F075A81-8EDB-4245-B17D-061AA68FD704 -rtc base=localtime -device virtio-rng-pci
2. 修复UTM虚拟机文件(推荐)
直接修复损坏的UTM虚拟机包更可靠:
- 找到
Windows 11.utm文件,右键选择「显示包内容」 - 检查
config.plist文件是否损坏,若损坏可尝试从UTM备份中恢复,或新建一个UTM虚拟机,将现有磁盘文件(30D3D5C5-0482-4FF1-AF8B-3EC71F330561.qcow2)挂载到新虚拟机中。
3. 移除SPICE相关参数(仅当必须使用系统QEMU时)
若不想依赖UTM的QEMU,需删除所有SPICE相关选项,简化后的命令示例:
qemu-system-aarch64 -L /usr/local/share/qemu -S -nodefaults -device virtio-net-pci,mac=AE:AF:A6:1C:D7:8B,netdev=net0 -netdev vmnet-shared,id=net0 -device virtio-gpu-pci -cpu host -smp cpus=8,sockets=1,cores=8,threads=1 -machine virt -accel hvf -drive if=pflash,format=raw,unit=0,file=/usr/local/share/qemu/edk2-aarch64-code.fd,readonly=on -drive "if=pflash,unit=1,file=/Users/---/Library/Containers/com.utmapp.UTM/Data/Documents/Windows 11.utm/Data/efi_vars.fd" -m 8192 -device ich9-intel-hda -device hda-duplex -device nec-usb-xhci,id=usb-bus -device usb-tablet,bus=usb-bus.0 -device usb-mouse,bus=usb-bus.0 -device usb-kbd,bus=usb-bus.0 -device usb-storage,drive=driveD7009BCF-2F84-4263-A943-3D3172E42D37,removable=true,bootindex=0,bus=usb-bus.0 -drive if=none,media=cdrom,id=driveD7009BCF-2F84-4263-A943-3D3172E42D37 -device nvme,drive=drive30D3D5C5-0482-4FF1-AF8B-3EC71F330561,serial=30D3D5C5-0482-4FF1-AF8B-3EC71F330561,bootindex=1 -drive "if=none,media=disk,id=drive30D3D5C5-0482-4FF1-AF8B-3EC71F330561,file=/Users/brandon/Library/Containers/com.utmapp.UTM/Data/Documents/Windows 11.utm/Data/30D3D5C5-0482-4FF1-AF8B-3EC71F330561.qcow2,discard=unmap,detect-zeroes=unmap" -device usb-storage,drive=drive72383F72-3B29-4849-B30A-43C8593DEFD3,removable=true,bootindex=2,bus=usb-bus.0 -drive if=none,media=cdrom,id=drive72383F72-3B29-4849-B30A-43C8593DEFD3 -name "Windows 11" -uuid 0F075A81-8EDB-4245-B17D-061AA68FD704 -rtc base=localtime -device virtio-rng-pci
注意:此方法会丢失USB重定向、剪贴板共享、SPICE图形优化等功能。
内容的提问来源于stack exchange,提问作者Brandon Zhang
相关产品推荐
相关产品推荐

