在过去的几年里,我一直很高兴地在 QEMU-KVM 上使用 GPU Passthrough 运行几个 Windows 10 虚拟机,几乎没有问题。然而,几天前(2020 年 5 月 21 日)我的两个虚拟机在启动时都开始崩溃。
如果我以安全模式启动 Windows - 它可以工作。如果我在禁用 Windows GPU 驱动程序的情况下启动 - 它可以工作。一旦安装或启用驱动程序,它就会崩溃(空白屏幕,VM 使用 100% CPU,无法切换键盘上的 num lock),几秒钟后 VM 重新启动。
任何人都有类似的问题或知道如何进一步排除故障?
硬件
- MB:GA-X99P-SLI
- CPU:i7-6850K
- 内存:32GB
- 主机 GPU:Nvidia Geforce 9400 GT
- 访客 GPU x2:Nvidia GTX GeForce 1060 6GB
- 磁盘:三星 950 PRO NVMe 512GB
软件
- Ubuntu 服务器 18.04/20.04
- qemu-kvm 2.11/4.2
- 视窗 10 x64 1909
我尝试过的事情
- 虽然不太可能,因为两个虚拟机同时开始崩溃,我回滚了几个 Windows 更新
- 尝试过旧驱动程序、Windows 更新驱动程序和最新的 Nvidia 驱动程序
- 这恰逢适当的升级,所以我尝试回滚,但我不能(轻松)因为我清理了我的缓存(d'oh!!)并且包不可用
- Windows 事件中没有错误或警告
- /var/log/libvirt/qemu 中没有错误或警告
- 所有 GPU 在裸机上一起运行良好
- 使用最新的 LTS 版本的 Ubuntu (20.04) 和相关的 qemu-kvm (4.2) 重建一切
- 将虚拟机从 i440 切换到 Q35
好的,多亏了这篇文章,我已经设法解决了这个问题,至少在测试环境中:
https ://forums.engineerworkshop.com/t/fixing-gpu-passthrough-on-windows-10-vm-in -proxmox/207
我采取的步骤是:
<kvm><hidden state='off'/></kvm>
- 这禁用了 GPU 驱动程序,因此我可以启动到 WindowsMSISupported
我的 GPU 的注册表项设置为“1”<kvm><hidden state='on'/></kvm>
在我的虚拟机配置中重新设置--
下周末我将正确地重建我的虚拟机(我一直在裸机上运行一个 Win 10 实例),并且一切顺利,接受这个作为答案。
--
编辑:我重建了我的虚拟机,上面最初解决了这个问题。但是,我在我的虚拟机上运行多个不同的 GPU,每次更换 GPU 时,它都会重置注册表项。我最终用性能更好的 AMD 替换了我所有的 GPU(仍然有一个重置错误,但至少它们有效)。
添加这个可以解决问题
有同样的问题。