- 积分
- 290
- 最后登录
- 2024-11-17
- 精华
- 0
- 阅读权限
- 30
- 主题
- 5
- UID
- 543196
- 帖子
- 724
- PB币
- 745
- 威望
- 0
- 贡献
- 0
- 技术
- 0
- 活跃
- 479
- UID
- 543196
- 帖子
- 724
- PB币
- 745
- 贡献
- 0
- 技术
- 0
- 活跃
- 479
|
本帖最后由 supty 于 2024-8-27 11:40 编辑
看到不少朋友最近又遇到这个问题了,所以重新整理下资料。
先弄清楚关系1. CPU虚拟化功能,Intel-VT, AMD-V 近十来年的CPU硬件都支持. 用于辅助提升虚拟机性能的一项技术.
2. PC的BIOS设置里有一个虚拟化开关,默认都是开启的,VBS功能,虚拟机软件都需要它保持开启.
3. Hyper-V(WSL,WSA依赖它), KVM(Linux下用), Vmware,Xen 是虚拟化软件,依赖CPU虚拟化硬件辅助.
Win11 系统默认在硬件满足要求的情况下(注:只验证过12代以上的笔记本和台式机)会自动开启VBS基于虚拟化的安全. 具体是那些先决条件没去做深入研究,相当于把系统自身运行在虚拟化下面,按照微
软说法是用来增强系统安全性的,但开启后,系统自身会有5-10%的性能损失,游戏性能下降会稍明显一
些,但不少依赖CPU硬件虚拟化的虚拟机软件 (vmware,virualbox,安卓虚拟机雷电等) 就无法直接在运行
于虚拟化的系统下再直接去访问CPU虚拟化接口实现功能,无法正常运行或出现性能下降, 而这个VBS也不
是那么容易的被关闭,综合总结后的关闭流程如下
(1) 修改 Windows Bootloader 引导参数关闭
bcdedit /set hypervisorlaunchtype off
用系统PowerShell 管理员方式运行
注意: 这个步骤是必须执行的,如果关不掉也无妨,后续组策略关闭需要先保证这一步为off状态.
重启后,在开始运行 msinfo32 验证基于虚拟化的安全是否关闭, 如果关不掉继续后面的步骤
(2)修改注册表相关参数来关闭
开始运行regedit 打开注册表编辑
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard
将值改为 "EnableVirtualizationBasedSecurity"=dword:00000000
注册表关闭方式针对我手里的几台硬件都是无效的,但可以试试看或许有奇迹.
重启后,在开始运行 msinfo32 验证基于虚拟化的安全是否关闭, 如果关不掉继续后面的步骤
(3) 修改Windows 安全中心,设备安全性,内核隔离,关闭内存完整性.
VBS的运行前置条件之一是 内存完整性,关掉它也可以关闭VBS, 但这个内存完整性开关可能和BIOS
里的内存保护相关设置有关,有些PC是灰色的无法关闭或者是不可选状态,能关闭先关闭后重启再运
行 msinfo32 进行检查. 关不掉继续后面步骤.
(4) 修改组策略,将设备保护,基于虚拟化的安全性设置为禁用.
开始运行 gpedit.msc 展开 计算机管理-管理模板-DeviceGuard
找到 打开基于虚拟化的安全设置,将 值直接改为 "已禁用" 重启后在运行msinfo32 验证.
在执行这一步前,务必保证前面第1步 bcdedit 执行过引导参数关闭,否则可能无效.而有些PC硬件平台
下,默认新安装的系统不用执行其它操作,直接通过修改组策略就可以关闭.
(5) 修改组策略,特殊情况 ( 注:个人手里有一台thinkpad 22款23H2系统通过这个流程才能关闭 )
重启后,如果以上这4步还是关不掉,那么就先改下 下面的子选项。
先把 打开基于虚拟化的安全设置为 ”已启用”,下面的选项改为
平台安全级别改为 安全启动
基于虚拟化的代码完整性保护 已禁用
Credential Guard 配置 已禁用
安全启动配置 已禁用
内核模式硬件强制实施对战保护 已禁用
改完后,确定并进行一次重启操作,用msinfo32 验证状态应该会变成启用但未运行。
再次按照步骤4 直接改为 已禁用,第二次重启 在运行msinfo32 验证会变成未运行.
上面的步骤都在 24H2预览版 26100.1195 上验证过,针对23H2也是有效的.如果严格按照以上
操作还是无法解决,那我也没办法了,它和不同机型的BIOS设置,硬件都有所关联,而且从
Win11 初版到24H2VBS关闭方法都有些出入,去年查阅很多国内外资料时讨论都是不了了之。
|
|