VMware Workstation虚拟化问题的排查与修复
概述
在使用 VMware Workstation 虚拟化平台时,尤其是打算在VMware中做嵌套虚拟化时,我们很可能会遇到如下错误提示:”此平台不支持虚拟化的 Intel VT-x/EPT”或类似的信息。这通常表明主机系统的虚拟化功能未启用或未正确配置。出现这种情况时,虚拟机无法启动,进而影响培训或工作环境的正常使用。
问题现象
一般来说,当你尝试打开虚拟机电源的时候,提示如下问题:
此平台不支持虚拟化的 Intel VT-x/EPT
未能启动虚拟机
如果你去掉了虚拟机CPU上的虚拟化支持,又想在虚拟机中再开虚拟机时,会提示以下错误:
1 | [kiosk@foundation0 ~]$ rht-vmctl start classroom |
如果主机不支持VMware的3D功能,会提示以下错误:
此主机不具有3D支持。此虚拟机的3D功能将被禁用。未能启动虚拟机
问题排查流程
开启CPU的虚拟化功能
先看看电脑的BIOS中是否开启了虚拟化,这是必须的,使用Ctrl + Shift + Esc
快捷键打开任务管理器,在性能
标签页点击CPU
,确认右下角的虚拟化为已启用
,如果不是已启用,就必须要重启进入BIOS设置
重启主机并进入 BIOS 或 UEFI 设置界面。在 BIOS 设置中,找到虚拟化选项,通常是Intel VT-x
或AMD-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 | Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart |
最好在卸载后重启一下电脑,输入以下命令重启或者自己重启一下
1 | Restart-Computer |
重启后,再开VMware workstation的虚拟机,看看好了没有,要是没有,再做下面的
关闭Credential Guard和基于虚拟化的安全性(VBS)
按下Windows+x快捷键,打开管理员字样的终端管理员或管理员字样的PowerShell,输入以下内容彻底关闭Credential Guard
和基于虚拟化的安全性(VBS)
功能
禁用 Credential Guard
1 | reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LsaCfgFlags /t REG_DWORD /d 0 /f |
禁用基于虚拟化的安全性(VBS)
1 | reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 0 /f |
清除固件中存储的 EFI 变量
1 | bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS |
重启电脑后,在命令行中输入msinfo32
,打开系统信息,在系统摘要中,右侧往下翻,会看到基于虚拟化的安全
已经是未启用的状态了,说明我们成功关闭。
如果还是没有关闭,继续往下处理
用脚本关闭Device Guard和Credential Guard
用脚本来关闭,这个脚本来自微软官方,可以放心执行,点此下载脚本
我下载好了之后,解压到了桌面,你要注意自己解压的位置以及文件名,因为不同的时间打开上面的链接下载的版本可能不同,记得一定要用管理员打开Powershell
输入以下命令允许电脑执行脚本
1 | Set-ExecutionPolicy Unrestricted |
确认好脚本文件名字后,执行以下命令来完成工作
1 | .\DG_Readiness_Tool_v3.6.ps1 -Disable |
需要注意的是,它输出中会提示一下找不到注册表、文件以及各种failed,不用管它
最后它提示我们需要重启,请保存好资料后,立即重启电脑,在重启的时候,电脑会黑屏停留在交互界面
1 | Credential Guard opt-out Tool: |
以上信息中,最下面提示我们按一下F3即可禁用,请尽快按下F3
按了F3之后,会提示你成功,这个时候按一下空格键继续,然后就会提示你另一个交互信息
1 | Virtualization Based security opt-out Tool: |
以上信息中,最下面提示我们按一下F3即可禁用,请尽快按下F3
按了F3之后,会提示你成功,这个时候按空格键继续即可,然后电脑就会成功启动
重启电脑后,在命令行中输入msinfo32
,打开系统信息,在系统摘要中,右侧往下翻,会看到基于虚拟化的安全
已经是未启用的状态了,说明我们成功关闭。
移除3D图形加速支持
此主机不具有3D支持。此虚拟机的3D功能将被禁用。未能启动虚拟机
这个比较好解决,直接在虚拟机的硬件设置中,找到显示
,取消勾选加速3D图形
即可