好的,我有一个 qemu-kvm Win7 VM 设置。当将其设置为使用标准 vga 输出“-vga std”时,它工作正常。Windows 加载,显示,没有问题。如果我设置
-vga none \
-device vfio-pci,host=06:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=06:00.1 \
VM 仍可启动,其 qemu 监视器控制台和用于运行启动脚本的终端均未显示任何错误。插入 pci_0000:06:00:0 上的 PCIE 显卡的监视器会发出信号,显示 BIOS 屏幕一秒钟,但一旦它真正开始加载 Windows(iso 安装磁盘或 VM 驱动器上已预安装的副本),它只会显示空白黑屏。
同样,没有错误,没有视觉伪影,屏幕仍然显示信号(不会默认为“无信号”并关闭),但只是纯黑色。据我所知,操作系统本身实际上并没有启动(我已安装 synergy 并将其设置为在计算机启动时自动启动。当不使用 vga 直通时,synergy 会按预期启动,无需向 VM 框输入任何内容。当使用 vga 直通时,我的鼠标无法从主机/服务器操作系统滚动到屏幕外,并且 synergy 服务器控制台从未指示客户端正在建立/尝试连接。
操作系统:Fedora 21 QEMU/QEMU-KVM:Ver 2:2.3.0-4 客户机操作系统:Windows 7 Enterprise libvirt-kvm:Ver 1.2.13.101 内核版本:4.0.4-201
启动脚本:
#!/bin/bash
sudo qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 8192 -cpu host,hv-time,kvm=off \
-smp sockets=1,cores=4,threads=1 -serial none -parallel none -nodefconfig \
-drive file=windows.img,cache=writeback,if=none,id=drive0,aio=native,cache.direct=on \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi \
-drive file=7_en_x64.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install \
-cdrom virtio.iso \
-device vfio-pci,host=06:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=06:00.1 \
-boot menu=on \
-vga none
exit 0
注释掉最后两个“-device”行,并将“-vga none”更改为“-vga std”可使虚拟机启动并按预期运行。