概述

在使用 VMware Workstation 虚拟化平台时,尤其是打算在VMware中做嵌套虚拟化时,我们很可能会遇到如下错误提示:”此平台不支持虚拟化的 Intel VT-x/EPT”或类似的信息。这通常表明主机系统的虚拟化功能未启用或未正确配置。出现这种情况时,虚拟机无法启动,进而影响培训或工作环境的正常使用。

问题现象

一般来说,当你尝试打开虚拟机电源的时候,提示如下问题:

此平台不支持虚拟化的 Intel VT-x/EPT

未能启动虚拟机

如果你去掉了虚拟机CPU上的虚拟化支持,又想在虚拟机中再开虚拟机时,会提示以下错误:

1
2
3
4
[kiosk@foundation0 ~]$ rht-vmctl start classroom
Error: Failure in validating virtualization capabilities
QEMU: Checking for hardware virtualization
FAIL (Host not compatible with KVM; HW virtualization CPU features not found. Only emulated CPUs are available; performance will be significantly limited)

如果主机不支持VMware的3D功能,会提示以下错误:

此主机不具有3D支持。此虚拟机的3D功能将被禁用。未能启动虚拟机

问题排查流程

开启CPU的虚拟化功能

先看看电脑的BIOS中是否开启了虚拟化,这是必须的,使用Ctrl + Shift + Esc快捷键打开任务管理器,在性能标签页点击CPU,确认右下角的虚拟化为已启用,如果不是已启用,就必须要重启进入BIOS设置

重启主机并进入 BIOS 或 UEFI 设置界面。在 BIOS 设置中,找到虚拟化选项,通常是Intel VT-xAMD-V或者是Virtualization,确保该选项已启用。如果未启用,请手动启用并保存设置。

确认 VMware 配置

在 VMware 中,确保虚拟机的设置,确保启用了虚拟化支持,一般来说,请确保在虚拟机的硬件设置中,点击处理器,确保虚拟化引擎中,勾选了虚拟化Intel VT-x/EPT或 AMD-V/RVI,具体图示和操作如下:

  • 打开 VMware 虚拟机软件界面

  • 选中需要配置的虚拟机,右键点击并选择 Settings(设置)或 从菜单上点击虚拟机–>设置(编辑虚拟机设置)

  • 在设置窗口中,选择 Processor(处理器)选项卡

  • 在“虚拟化引擎”部分,确保勾选了 “虚拟化 Intel VT-x/EPT”(适用于 Intel 处理器)或 “AMD-V/RVI”(适用于 AMD 处理器)。

  • 点击确定保存设置,并关闭设置窗口。

关闭内核隔离/关闭内存完整性

  • 按下Windows+i快捷键,快速打开Windows的设置,如果你不知道什么是Windows键盘,看一下键盘左下角,左下角窗户样子的那个键

  • 在左上角的搜索框里,输入内核隔离,搜到后,点击并打开,打开后是Windows安全中心,将内存完整性的按钮关闭

  • 此时会提示你重新电脑,请按提示重启,不重启不生效,重启后,再尝试启动虚拟机,看看是否可以用了

关闭Hyper-V功能

需要注意,有些牌子的电脑上微软的Hyper-V默认是运行的,由于我们用的是VMware Workstaion,在同一个电脑上,最好只有一个虚拟化主程序,所以需要关闭Hyper-V,按下Windows+x快捷键,并打开管理员字样的终端管理员或管理员字样的PowerShell,输入以下内容彻底卸载Hyper-V功能

1
2
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart
bcdedit /set hypervisorlaunchtype off

最好在卸载后重启一下电脑,输入以下命令重启或者自己重启一下

1
Restart-Computer

重启后,再开VMware workstation的虚拟机,看看好了没有,要是没有,再做下面的

关闭Credential Guard和基于虚拟化的安全性(VBS)

按下Windows+x快捷键,打开管理员字样的终端管理员或管理员字样的PowerShell,输入以下内容彻底关闭Credential Guard基于虚拟化的安全性(VBS)功能

禁用 Credential Guard

1
2
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LsaCfgFlags /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" /v LsaCfgFlags /t REG_DWORD /d 0 /f

禁用基于虚拟化的安全性(VBS)

1
2
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v RequirePlatformSecurityFeatures /t REG_DWORD /d 0 /f

清除固件中存储的 EFI 变量

1
2
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS
bcdedit /set vsmlaunchtype off

重启电脑后,在命令行中输入msinfo32,打开系统信息,在系统摘要中,右侧往下翻,会看到基于虚拟化的安全已经是未启用的状态了,说明我们成功关闭。

如果还是没有关闭,继续往下处理

用脚本关闭Device Guard和Credential Guard

用脚本来关闭,这个脚本来自微软官方,可以放心执行,点此下载脚本

我下载好了之后,解压到了桌面,你要注意自己解压的位置以及文件名,因为不同的时间打开上面的链接下载的版本可能不同,记得一定要用管理员打开Powershell

输入以下命令允许电脑执行脚本

1
Set-ExecutionPolicy Unrestricted

确认好脚本文件名字后,执行以下命令来完成工作

1
.\DG_Readiness_Tool_v3.6.ps1 -Disable

需要注意的是,它输出中会提示一下找不到注册表、文件以及各种failed,不用管它

最后它提示我们需要重启,请保存好资料后,立即重启电脑,在重启的时候,电脑会黑屏停留在交互界面

1
2
3
4
5
Credential Guard opt-out Tool:

Do you want to disable credential Guard?Disabling this functionality can allow malware to read the password and other credentials of all users signing on to windows. For the correct action in your or ganization, contact your administrator before disabling protection.

Press the windows key or F3 to disable credential Guard, Esc to skip this step.

以上信息中,最下面提示我们按一下F3即可禁用,请尽快按下F3

按了F3之后,会提示你成功,这个时候按一下空格键继续,然后就会提示你另一个交互信息

1
2
3
4
5
Virtualization Based security opt-out Tool:

Do you want to disable virtualization Based security?Disabling this functionality changes the security configuration of windows. Forthe correct action in your organization, contact your administrator before disabling.

Press the windows kev or F3 to disable protection, Esc to skip this step.

以上信息中,最下面提示我们按一下F3即可禁用,请尽快按下F3

按了F3之后,会提示你成功,这个时候按空格键继续即可,然后电脑就会成功启动

重启电脑后,在命令行中输入msinfo32,打开系统信息,在系统摘要中,右侧往下翻,会看到基于虚拟化的安全已经是未启用的状态了,说明我们成功关闭。

移除3D图形加速支持

此主机不具有3D支持。此虚拟机的3D功能将被禁用。未能启动虚拟机

这个比较好解决,直接在虚拟机的硬件设置中,找到显示,取消勾选加速3D图形即可