我开虚拟化是为了在虚拟机中运行VirtualBox,如果不开CPU虚拟化,会报错VBoxManage error: VT-x is not available (VERR_VMX_NO_VMX)
。
文章目录
- 1 检查虚拟机的虚拟化是否启用
- 2 开启虚拟化引擎
- 3 检查主机CPU是否开启虚拟化
- 4 关闭Window的内核隔离
- 5 关闭有冲突的windows虚拟化功能
- 6 禁用Device guard
1 检查虚拟机的虚拟化是否启用
参考:VBoxManage error: VT-x is not available (VERR_VMX_NO_VMX)
先装cpu-check,获得kvm-ok指令:
sudo apt-get install cpu-checker
运行下面这个指令检查是否支持KVM:
sudo kvm-ok
- 如果没有启用,会显示(继续第二个步骤):
- 如果已经启用,会显示(结束):
2 开启虚拟化引擎
关闭虚拟机,编辑虚拟机设置,如下图所示,在虚拟化Intel VT-x/EPT或AMD-V/RVI
打勾:
然后再开启虚拟机:
- 如果成功启动(回到第一步):检查是否kvm-ok;
- 如果没有成功启动,报错此平台不支持虚拟化的 Intel VT-x/EPT(继续第三步):检查主机CPU是否开启虚拟化。
3 检查主机CPU是否开启虚拟化
win+r搜索taskmgr进入任务管理器,如下图所示,查看CPU是否开启虚拟化:
- 如果没有开启,请参考这篇博客,在BIOS上打开CPU虚拟化:解决虚拟机VM-开启 虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI(V) 后 电脑蓝屏重启 或显示此平台不支持虚拟化的问题 (Win10)。
- 如果开启了,继续第四步。
4 关闭Window的内核隔离
参考:关于“ VMware Workstation 16 此平台不支持虚拟化的Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT,是否继续?”的有关问题的总结解答 这个博主他对为什么要内核隔离做了一番讲解。
win+s搜索“内核隔离”,关掉内核隔离,如下图所示:
然后重启电脑。
然后再开启虚拟机:
- 如果成功启动(回到第一步):检查是否kvm-ok;
- 如果没有成功启动(继续第五步):关闭与VMware虚拟化冲突的所有windows功能。
5 关闭有冲突的windows虚拟化功能
搜索“启用或关闭windows功能”,关闭所有有关的功能:
包括Hyper-V、Windows虚拟机监控程序平台、适用于Linux的Windows子系统、虚拟机平台等。
关闭功能后,提示重启系统,选择重启。
然后再开启虚拟机:
- 如果成功启动(回到第一步):检查是否kvm-ok;
- 如果没有成功启动(继续第六步):禁用Device guard。
6 禁用Device guard
这一步网上教程基本上都没提到,但效果是立竿见影的。
有时候虚拟机打不开了,也得禁用Device guard。
- 如果在前面的步骤中,重启时出现了如下图所示的页面,请按
win
键或Fn+F3
键关闭Device guard
。 - 如果在前面的步骤重启时没有遇到上图,则参考这篇文章主动禁用Device guard并唤起上图的页面:【经验】windows更新20H2|vmware无法使用|禁用Device guard。这篇博客的禁用方案,参考的是微软官网的禁用Device guard的步骤:MSDN-《Manage Windows Defender Credential Guard》,所以一般情况下,可以放心大胆地直接使用。
然后再开启虚拟机:
- 如果成功启动(回到第一步):检查是否kvm-ok;
- 如果没有成功启动,我也无计可施了。我的是禁用了Device Guard就能用了。