本篇博客没有太多太详细的图文,应在你看多很多帖子,尝试过很多方法都没有成功的基础上才能更好的看懂。
项目要用到安卓模拟器,所以下载了夜神模拟器,但是启动一直失败,显示 “虚拟机启动失败,请进行修复” 选项有 “取消” 和 “关闭Hyper-V”。
于是去查看了一些教程。主要分为以下几类:
-
去BIOS中开启虚拟化支持,如果已经开启了,就关闭再重启再开启(实测蓝屏);
-
关闭防火墙;关闭
内核隔离 -> 内存完整性; -
手动去关闭 Hyper-V 服务,再
计算机 -> 管理 -> 服务与应用程序 -> 服务中手动禁用 Hyper-V 相关的服务;

-
改注册表内容,将
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard置为 0;

前两个我本来就已经设置好的,后两个我尝试了,但是都没有成功,但是下面这个博主给的方法,我成功了。
虚拟化安全无法关闭导致的ENSP之40报错 终极解决方法及排错思路!
下面简要的介绍一下解决的过程:
首先当我们 BIOS 中已经开启虚拟化后,模拟器依然检测不到 VT ,可以打开系统信息(搜索框搜索)查看基于虚拟化的安全性是否启动,如果启用了的话可能导致软件检测不到已启用的VT。
首先用到两个工具
LeoMoon CPU-V
dgreadiness_v3.6
LeoMoon CPU-V 可以检测 VT 状态是否正常,正常应该是这样的:

但是我的是这样的:

这表明软件无法检测到VT,此时就要用到 dgreadiness_v3.6
- 然后我们打开PowerShell(管理员模式)输入 set-ExecutionPolicy RemoteSigned 。我输入这行命令的时候没有输出提示,如果需要选择
“n/y”的话选择 y; - 解压
dgreadiness_v3.6到你自己存放软件的目录中,进行解压,解压后你会看到有个DG_Readiness_Tool_v3.6.ps1; - 在 PowerShell(管理员模式)中,先将操作目录切换到
DG_Readiness_Tool_v3.6.ps1所在的路径下; - 在该目录下执行
.\DG_Readiness_Tool_v3.6.ps1 -Disable,当看到它提示你 reboot 系统后,重启电脑; - 电脑重启的过程中,可以还需要一下操作,总之就是同意它进行操作,按 F3 或是任意键;
- 开机成功。
此时,我再次打开系统信息,显示 虚拟化的安全性 未启动,再次启动夜深模拟器,成功!

为什么启用了 虚拟化的安全性 就无法检测到 VT呢?
虚拟化的安全性(VBS)依赖 Hyper-V,独占虚拟化资源,VBS 需要启用 Hyper-V 作为底层虚拟化层。Hyper-V 是一种 Type-1 hypervisor,直接运行在硬件上,导致宿主操作系统成为其上的“父分区”。此时,硬件虚拟化资源(如 Intel VT-x/AMD-V)被 Hyper-V 独占,其他软件(如 VirtualBox、VMware)无法直接访问这些资源,即使 BIOS 中 VT 已开启。
虚拟化扩展在同一时间只能被一个 hypervisor 使用。若 Hyper-V 已启用,其他虚拟机软件可能无法检测到可用资源,导致误报 VT 未启用。
6404

被折叠的 条评论
为什么被折叠?



