必须显式开启嵌套虚拟化才能在Hyper-V虚拟机内运行雷电模拟器、Docker Desktop等依赖硬件虚拟化的软件;需关闭目标虚拟机后通过PowerShell执行Set-VMProcessor命令启用ExposeVirtualizationExtensions,并在客户机中验证“虚拟化:已启用”。
如果您已在Windows 11中成功启用Hyper-V,但需要在已运行的虚拟机内部再运行支持硬件虚拟化的软件(例如雷电模拟器、Docker Desktop或另一台Hyper-V虚拟机),则必须显式开启嵌套虚拟化功能。该功能默认处于关闭状态,需通过PowerShell对指定虚拟机单独配置。以下是开启此功能的具体步骤:
一、确认宿主机与虚拟机前提条件
嵌套虚拟化依赖于宿主机CPU支持并已启用二级地址转换(SLAT)技术,且目标虚拟机必须处于关闭状态,否则无法修改处理器虚拟化扩展设置。同时,宿主机Hyper-V本身必须已启用并正常运行。
1、以管理员身份打开Windows Terminal或PowerShell。
2、执行命令 Get-VM 查看当前所有虚拟机列表及运行状态。
3、确认目标虚拟机(如名为“Win10_Qt6_Python”)当前状态为 Off;若为“Running”,请先执行 Stop-VM -Name “虚拟机名称” 关闭它。
4、执行命令 Get-VMProcessor -VMName “虚拟机名称” 检查当前嵌套虚拟化状态,输出中 ExposeVirtualizationExtensions 属性值应为 False。
二、使用PowerShell启用嵌套虚拟化
该操作通过修改虚拟机处理器配置,将CPU的虚拟化扩展暴露给客户操作系统,使其能识别并调用底层虚拟化指令集,从而支持内嵌的虚拟机监控程序(如Android模拟器的Hypervisor、WSL2内核等)。
1、确保虚拟机已完全关闭(状态为Off)。
2、在管理员PowerShell中输入以下命令并回车:Set-VMProcessor -VMName “虚拟机名称” -ExposeVirtualizationExtensions $true。
3、执行后无错误提示即表示配置成功;可再次运行 Get-VMProcessor -VMName “虚拟机名称” | fl 验证 ExposeVirtualizationExtensions 是否已变为 True。