较旧设备可能默认未开启 CPU 虚拟化支持,需要在 BIOS 中手动启用 CPU 虚拟化支持,此时运行带硬件虚拟化的虚拟机时不会提示"此平台不支持虚拟化的 Intel VT-v/EPT"等 CPU 硬件虚拟化支持问题。而较新设备会在默认启用 DMA 时自动启用 CPU 虚拟化支持,并且新设备默认启用 CPU 虚拟化支持,在运行带硬件虚拟化的虚拟机时不会提示"此平台不支持虚拟化的 Intel VT-v/EPT"。
VMware Workstation Pro 需在 BIOS 开启 CPU 硬件虚拟化支持,开启 CPU 硬件虚拟化支持后,Windows 系统会自动开启基于虚拟化的安全性(VBS,Virtualization-based Security),而 VMware Workstation Pro 使用的虚拟化技术和 Windows 系统基于虚拟化的安全性技术冲突。
基于虚拟化的安全功能(VBS)使用硬件虚拟化和 Windows 虚拟机监控程序来创建独立的虚拟环境,该环境将成为假定内核遭到入侵的 OS 的信任根。 Windows 使用这种独立环境来托管许多安全解决方案,为它们提供了显著增强的保护,以防止操作系统中的漏洞,并防止利用恶意攻击试图破坏保护。 VBS 强制实施限制,以保护重要的系统和操作系统资源,或保护安全资产(如经过身份验证的用户凭据)。
其中一个安全解决方案是内存完整性,它通过在 VBS 的隔离虚拟环境中运行内核模式代码完整性来保护和强化 Windows。 内核模式代码完整性是指 Windows 进程,它在启动所有内核模式驱动程序和二进制文件之前对其进行检查,并防止未签名或不受信任的驱动程序或系统文件加载到系统内存中。 内存完整性还限制可用于入侵系统的内核内存分配,确保在安全运行时环境中传递代码完整性检查后,内核内存页才会成为可执行文件,并且可执行文件页本身永远不会可写。 这样,即使存在允许恶意软件试图修改内存的缓冲区溢出等漏洞,也无法修改可执行代码页,并且修改后的内存也无法执行。
Windows 11 系统(关闭方法复杂)。一般安装 Windows 11 系统的硬件都比较新,默认 CPU 硬件虚拟化就已经开启,如若未开启,可手动进入 BIOS 确认并开启 CPU 硬件虚拟化支持。但在 Windows 11 系统上,即使开启 CPU 硬件虚拟化支持,也可能因为基于虚拟化的安全性(VBS)导致出现不支持 Intel VT-v/EPT 等异常,此时需要强制关闭基于虚拟化的安全性(VBS)。而在 Windows 11 系统上,根据不同的硬件设备,不同的 Windows 11 系统版本,能够真正关闭基于虚拟化的安全性(VBS)方法不一,并且在 Windows 11 系统上Device Guard/Credential Guard 更会自动拉起基于虚拟化的安全性(VBS),故而要关闭 VBS,还要关闭 Device Guard/Credential Guard。对此,网上有很多解决方案,但是似乎根据不同的 Windows 11 版本或者不同厂商硬件,禁用方法会不完全相同。甚至有可能实施解决方案后,当时重启系统后基于虚拟化的安全性关闭成功,但是再次重启系统,又会再次运行基于虚拟化的安全性,而只要基于虚拟化的安全性处于运行状态,就会导致 VMware 虚拟机运行异常。本文中将列举多种禁用方法,可以都尝试下。
确认当前系统是否已经启用基于虚拟化的安全性(VBS)
若查看到 基于虚拟化的安全性 是“正在运行”或“已启用未运行”,都属于未关闭状态。
运行 msinfo32.exe 或者直接 Win + S 搜索“系统信息”,查看“基于虚拟化的安全性 ”(下图为禁用成功状态)
1.Windows Hello:Windows Hello(PIN、面部/指纹识别)会受到影响。此时如果登录的是微软账户,并且无法退出微软账户,再次进入系统使用微软账户的密码进行登录(也可尝试新建管理员账号作为备用或者尝试删除 Windows Hello 功能,改用本地账户密码登录),如果未登录微软账户,但是有使用 Windows Hello,建议先删除 Windows Hello 的指纹、人脸和 PIN,改用本地账户密码进行登录。
2.Windows 沙盒功能:系统隔离测试环境。
3.Hyper-V:Hyper-V 虚拟机监控平台及其相关功能无法使用。
4.WSL2:在 WSL2 中为使得 Linux 系统支持原生内核,会使用到 Hyper-V 启动原生 Linux 系统内核。
1.Windows Hello:Windows Hello(PIN、面部/指纹识别)会受到影响。此时如果登录的是微软账户,并且无法退出微软账户,再次进入系统使用微软账户的密码进行登录(也可尝试新建管理员账号作为备用或者尝试删除 Windows Hello 功能,改用本地账户密码登录),如果未登录微软账户,但是有使用 Windows Hello,建议先删除 Windows Hello 的指纹、人脸和 PIN,改用本地账户密码进行登录。
2.Windows 沙盒功能:系统隔离测试环境。
3.Hyper-V:Hyper-V 虚拟机监控平台及其相关功能无法使用。
4.WSL2:在 WSL2 中为使得 Linux 系统支持原生内核,会使用到 Hyper-V 启动原生 Linux 系统内核。