必须开启嵌套虚拟化才能在windows 10虚拟机中运行hyper-v、docker desktop、wsl2或minikube,否则报“intel vt-x/ept不可用”或卡在安装检测界面;需满足cpu支持并启用vt-x/amd-v、win10专业版/企业版、vm硬件版本≥8.0、宿主机启用hyper-v或vmware透传,再按环境执行对应配置命令或修改.vmx文件,并验证hyper-v功能已启用且cpu虚拟化显示“已启用”。

要在 Windows 10 虚拟机里再跑一层虚拟机(比如装 Hyper-V、Docker Desktop、WSL2 或 Kubernetes Minikube),必须开启嵌套虚拟化,否则会报“Intel VT-x/EPT 不可用”或直接卡在 Windows 11 安装检测界面——这不是配置错了,是 VMware/Hyper-V 默认锁死了这扇门。
确认宿主机和虚拟机满足硬性前提
嵌套虚拟化不是点一下就通的功能,它依赖一连串不可跳过的底层条件。缺任意一项,后续所有操作都会失败。
确保你的物理 CPU 支持并已启用 Intel VT-x(或 AMD-V):重启进 BIOS/UEFI,找到 Virtualization Technology、Intel VT-x、SVM Mode 等选项,设为 Enabled。
Windows 10 虚拟机必须是专业版或企业版,家庭版无法安装 Hyper-V 功能,这条路直接堵死。
虚拟机配置版本需为 8.0 或更高(Hyper-V 环境下创建的 VM 默认满足;VMware 用户需确认虚拟机硬件兼容性设为 Workstation 16.x 或 ESXi 7.0+)。
运行该虚拟机的宿主机(即你当前用的那台电脑)必须已启用 Hyper-V(Win10 Pro/Ent)或 VMware 的虚拟化透传支持;若宿主机是 macOS 或 Linux,本方案不适用。
在 Hyper-V 环境中开启嵌套虚拟化
这是最原生、成功率最高的路径,适用于你在 Windows 10 物理机上用 Hyper-V 创建了 Win10 虚拟机,现在想让它也能开虚拟机。
第一步:关闭目标虚拟机。嵌套虚拟化只能在 VM 关机状态下配置,强行运行中执行命令会报错且无效。
第二步:以管理员身份打开 PowerShell,执行以下命令(将 NestedWin10 替换为你虚拟机的实际名称):
Set-VMProcessor -VMName "NestedWin10" -ExposeVirtualizationExtensions $true
第三步:启动该虚拟机。此时它已具备调用物理 CPU 虚拟化指令的能力,但还不能直接用——你得在里面装 Hyper-V。
第四步:进入虚拟机 → 打开“启用或关闭 Windows 功能” → 勾选Hyper-V → 点击确定 → 重启虚拟机。这一步不可省略,否则 Guest OS 仍无法识别虚拟化扩展。
注意:启用嵌套虚拟化后,该虚拟机将无法使用动态内存、检查点、实时迁移、保存/恢复功能。这是微软明确限制的技术取舍,不是你操作失误。
在 VMware 中开启嵌套虚拟化(Workstation / ESXi)
如果你用的是 VMware Workstation Pro 或 VMware ESXi 托管 Win10 虚拟机,开启方式完全不同,且必须在关机状态下修改配置文件。
方法一:通过 VMware 图形界面(仅限 Workstation Pro 15.5+ 或 Fusion 12.1+)
关闭虚拟机 → 右键虚拟机 → “设置” → “处理器” → 勾选“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI” → 点击确定。
方法二:手动编辑 .vmx 文件(通用,推荐,尤其适用于 ESXi)
关闭虚拟机 → 找到其所在目录下的 xxx.vmx 文件 → 用记事本打开 → 在末尾另起一行,添加:
vhv.enable = "TRUE"
保存文件 → 启动虚拟机。这行配置强制 VMware 将 CPU 的 VT-x 指令透传给 Guest OS。
重要提醒:如果该虚拟机后续要运行 Docker Desktop 或 WSL2,你还必须在 VMware 中为其网络适配器启用混杂模式(Promiscuous Mode),否则容器网络不通。操作路径:虚拟机设置 → 网络适配器 → 高级 → 勾选“混杂模式”。
验证嵌套虚拟化是否生效
进入已配置好的 Windows 10 虚拟机,以管理员身份运行 PowerShell:
执行:systeminfo | findstr "Hyper-V Requirements"
重点看最后一行输出:若显示"A hypervisor has been detected. Features required for Hyper-V will not be displayed.",说明宿主 Hypervisor 已识别到嵌套层,但此提示本身不表示成功;真正关键的是下一条命令。
执行:Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
若 State 显示为 Enabled,且你能在“启用或关闭 Windows 功能”里看到 Hyper-V 已勾选并灰色不可改,则嵌套虚拟化链路已贯通。
最后一步:在该虚拟机内新建一台 Hyper-V 虚拟机。能正常开机、进入系统、运行任务管理器查看“性能→CPU→虚拟化”显示“已启用”,即完成全部验证。











