本文总结了使用 WSL2 与 VMware 虚拟化引擎冲突的解决方案。
结论
在 Windows 11 25H2 + VMware Workstation(17.x / 2025) 下:
✅ VMware 与 WSL2 可以共存
❌ 但 VMware 不再是“直通 VT-x”的传统模式
👉 而是 运行在 Hyper-V 之上(兼容模式)
换句话说:
- Hyper-V ON
- WSL2 ✅
- Docker Desktop(WSL2 后端)✅
- VMware ✅(但走 Hyper-V 后端)
- Hyper-V OFF
- WSL2 ❌
- VMware ✅(性能最好)
两种模式
| 模式 | Hyper-V | WSL2 | VMware | 性能 |
|---|---|---|---|---|
| 模式 A:Hyper-V 共存模式 | ON | ✅ | ✅ | ⭐⭐⭐ |
| 模式 B:二选一 | ON / OFF | 二选一 | 二选一 | ⭐⭐⭐⭐⭐ |
模式 A 性能损失是客观存在的:
| 项目 | 直通 VT-x | Hyper-V 后端 |
|---|---|---|
| CPU | 100% | ~85–90% |
| I/O | 原生 | 稍慢 |
| Nested VT | 强 | 弱 |
由于共存模式的性能损失且配置的复杂性(后续网络连接可能还需配置下WSL2和虚拟机的NAT或桥接模式),所以优先选择二选一的手动切换重启方式。(如果觉得每次切换需要重启麻烦,可以配置开机双启动的选项来选择)
模式 B:二选一
快速判断当前系统状态
systeminfo | findstr /i "Virtualization Hyper-V"
看到:
A hypervisor has been detected.
➡ 当前是 Hyper-V 模式
如何切换
切换 VMware / VirtualBox:
bcdedit /set hypervisorlaunchtype off
该命令控制Windows 启动时不会再加载 Hyper-V 的 Hypervisor,也就是说:
- Hyper-V 不工作
- WSL2 不工作
- Virtual Machine Platform 不工作
- Windows Sandbox 不工作
- CPU 的 VT-x / SVM 虚拟化能力释放给第三方虚拟机
切换到 WSL2:
bcdedit /set hypervisorlaunchtype auto
👉 相互切换必须重启才生效
shutdown /r /t 0 # 或手动重启
换来的是:
- ✔ VMware 满血
- ✔ WSL2 满血
- ✔ 不互相妥协
模式 A:VMware + WSL2 共存
核心思想
让 VMware 接受 Hyper-V 的存在,使用微软的虚拟化平台:
- WHP(Windows Hypervisor Platform)
- VBS(Virtualization-Based Security)
从 VMware 16.2+ 开始已官方支持
步骤 1:开启 Windows 必要组件
打开:
控制面板
→ 程序
→ 启用或关闭 Windows 功能
✅ 勾选以下 3 个:
- ☑ Hyper-V
- ☑ Windows Hypervisor Platform
- ☑ Virtual Machine Platform
WSL2 依赖:
- Hyper-V
- Virtual Machine Platform
步骤 2:确认 Hyper-V 启动
bcdedit /enum | findstr hypervisor
应看到:
hypervisorlaunchtype Auto
❗ 不要设为 off
步骤 3:VMware 设置
虚拟机 → Processors
-
❌ 不要勾选:
Virtualize Intel VT-x/EPT or AMD-V/RVI(这是直通模式,Hyper-V 下无效)
步骤 4:验证是否真的共存
WSL2 验证:
wsl -l -v
输出类似:Ubuntu-22.04 Running 2。
VMware 验证:
正常启动虚拟机,不会再提示:VMware Workstation and Hyper-V are not compatible。