尝试缓解“VMware Workstation 不可恢复错误: (vcpu-0)”问题
故障现象
报错如下图所示,该故障很可能发生在虚拟机刚启动、切换正在运行的虚拟机的标签页、多个虚拟机运行负载较高时。不管虚拟机系统是Windows还是Linux,这个问题会出现在任何一个拥有图形化界面的客户机操作系统上,纯命令行的Linux却很少触发这个问题。最重要的是,经过搜索,该故障几乎全发生在AMD处理器(带核显)+NVIDIA独显组合的电脑上。
VMware Workstation 不可恢复错误: (vcpu-0)
VERIFY bora\vmx\main\hostWin32.c:559
(也可能是VERIFY bora\vmx\main\hostWin32.c:569)
日志文件位于“D:\Virtual Machines\Windows 7\vmware.log”中。
您可以请求支持。
要收集数据提交给 VMware 技术支持,请选择“帮助”菜单中的“收集支持数据”。
也可以直接在 Workstation 文件夹中运行“vm-support”脚本。
我们将根据您的技术支持权利做出回应。
故障分析
先大致说说笔者的笔记本电脑配置:AMD锐龙4800H处理器+NVIDIA GTX1650Ti显卡+32GB运行内存。
这个故障现象大约在两年前就已出现(之前虚拟机运行一切正常),那时使用的是刚发布的测试版Windows11,以为是当时的VMware Workstation 16不兼容最新的Win11所致,于是没放在心上,但这个错误基本一启动虚拟机就出现,根本没法正常使用。本想降级Win10再看看这个问题还会不会出现,但因为忙一直没重装系统。后来为了临时解决使用的需求,启用了Win自带的Hyper-V平台搭建测试虚拟机。过程中无意间启动了VMware Workstation一直存在问题的虚拟机(自从15版本之后,VMware Workstation支持与Hyper-V并存并同时运行),却发现该故障消失了! 后来经过多次测试,确实在Hyper-V启用的情况下,该问题会消失。但这并不是一个完美的解决方案,因为在启用了Hyper-V的情况下,VMware Workstation的性能会下降,最重要的是嵌套虚拟化功能会失效(即虚拟化引擎引擎下的“虚拟化Intel VT-x/EPT或AMD-V/RVI”功能),对于经常测试vSphere等虚拟化平台的笔者来说,这是无法忍受的。但没办法,只能这样将就用着。
后来等到Windows11正式版发布、VMware Workstation 17发布,甚至重装系统降级Win10用非常干净的系统测试,该问题依旧存在! 没办法,笔者只能在网上查找解决方案,但搜索到的“VMware Workstation 不可恢复错误”的报错信息似乎都与笔者遇到的没有关系,很多是安装黑苹果时遇到的,他们的解决方案笔者也都一一尝试,并没有用(清一色的都是开启BIOS的VT虚拟化引擎,但笔者的笔记本在买回来后第一时间就开启了这个选项,不可能是这个问题)。
一时似乎陷入了死胡同,折腾一番无果后也没再管它。后来笔者买了一台显示器,用Type-C转DP独显输出到显示器上用,竟然发现在不开启Hyper-V的情况下VMware Workstation运行虚拟机不再报这个错了! 本来以为问题就此解决,不过随后发现,如果运行多个虚拟机且负载较大,虽然不会再报错,但会出现一个非常奇怪的问题:显示器期间会突然黑屏(像更新显卡驱动时的那种短暂黑屏),然后宿主机以及虚拟机会假死,严重到会直接死机。看来这个问题还是没有完全解决。
笔者拔了显示器,运行一台虚拟机就会报错的故障又回来了,很是让人无语。冷静下来想想,这个问题似乎与核显以及显卡驱动程序有关系,因为用独显输出的显示器运行虚拟机(笔者的笔记本不支持纯粹的独显直连输出,只有在外接显示器且关闭内屏的情况下才算是“独显输出”)问题似乎就会缓解,再加上笔者期间尝试过用Virtual Box运行虚拟机,在Windows虚拟机系统上安装Virtual Box的增强工具(类似于VMware的VMTools)并重启后,Windows虚拟机某些界面会花屏或显示不正常,比如任务栏,开始,系统设置等。仔细观察观察这些界面,笔者发现了一个共性,那就是这些界面无一例外的具有透明特效,需要用显卡渲染。比如Windows 7虚拟机,在刚装完系统后使用一切正常,一旦安装完增强工具后具有Windows Aero特效的部分就花屏(增强工具具有虚拟显卡驱动)
得,似乎找到原因了,问题好像出在虚拟机的虚拟显卡渲染上,为了验证这个猜想,我关闭了VMware Workstation的“加速3D图形”功能:
结果发现,虚拟机崩溃报错的次数确实少了很多(至少短时间没有复现,没有足够时间的验证,不能保证取消这个选项问题就能解决),不过这会让虚拟机的图形性能大大降低,这并不是一个好方法。
但至少有了头绪,问题的根源应该就在宿主机的显卡驱动上,后来经过无意的摸索,发现只要同时启用AMD显卡控制面板里的“帧数目标控制”功能、NVIDIA控制面板的“后台应用程序最大帧率”以及“最大帧速率”功能,这个错误就离奇的减少了(笔者在测试的过程中发现这个错误还可能在某些情况下触发,但已经不是严重影响使用的程度了,所以本文标题并不是“解决”,而是“缓解”):
故障总结
本故障应该是由于AMD和NVIDIA的某次显卡驱动更新迭代变更后,两者的驱动在某些有关联的部分下出了问题,影响到了虚拟机的虚拟显示渲染,和VMware Workstation的关系不大。
解决方案总结
-
在没有嵌套虚拟化的需求下,首选启用“Windows虚拟机平台”,这一点尤其利好本来就使用WSL、WSA、Docker Desktop、Hyper-V功能的朋友们。
-
根据“故障分析”部分最后一点提到的方案,在AMD显卡控制面板里的“帧数目标控制”功能、NVIDAI控制面板的“后台应用程序最大帧率”以及“最大帧速率”功能中来回启用停用切换,并不一定是这三者同时启用就能缓解问题,有可能只是启用其中一个或两个,根据最小化原则,建议依此启用进行尝试(启用后记得重启电脑生效),而其帧率数值应调到最大,避免影响游戏性能(只有在三者都启用后仍然不能缓解问题的情况下才调节其数值到屏幕刷新率等常见数值下进行尝试)
-
关闭虚拟化应用的“图形3D加速”功能。(不推荐,可能影响性能和虚拟机图形界面的显示)
-
尝试将AMD显卡驱动、NVIDIA显卡驱动降级到2020年左右的版本(不推荐,会影响系统稳定性与游戏性能表现,尤其是在使用最新Windows11操作系统的情况下)
这一路,真的是耗时又辛苦。。
更多推荐
所有评论(0)