Win11 WSL 与 VMware 共存:Hyper-V 兼容模式实战(含 cd 命令支持 Windows 路径脚本)

Win11 WSL 与 VMware 共存:Hyper-V 兼容模式实战(含 cd 命令支持 Windows 路径脚本) Win11 WSL 与 VMware 共存Hyper-V 兼容模式实战含 cd 命令支持 Windows 路径脚本Win11 下用 WSL 又想跑 VMware 虚拟机它们能共存但有个关键开关。一、问题来源群里有人问开了 WSL 2 之后 VMware 就启动不了反过来开了 VMware WSL 又报错是不是只能二选一翻了一遍资料又在两台机器上实测了一下结论是WSL 2 和 VMware Workstation 17 可以共存关键是启用 VMware 的 Hyper-V 兼容模式。老 VMwareWorkstation 15 及以下确实和 WSL 2 互斥因为 WSL 2 走 Hyper-V老 VMware 不支持 Hyper-V 之上再做虚拟化。新版加了兼容层之后Hyper-V 和 VMware 能在同一台机器上跑。二、实操步骤1. 确认 Windows 已开启 Hyper-V以管理员身份打开 PowerShell# 查看是否启用Get-WindowsOptionalFeature-Online|Where-Object{$_.FeatureName-MatchHyper}# 启用如未启用Enable-WindowsOptionalFeature-Online-FeatureName Microsoft-Hyper-V-All启用完重启。2. 升级 VMwareVMware Workstation 17.0.0 Pro for Windows之后版本都支持 Hyper-V 兼容模式。打开 VMware → 编辑 → 首选项 → 兼容性确认能看到 “Use Hyper-V” 选项。3. 启动 VMware 虚拟机时走 Hyper-V 模式修改虚拟机配置.vmx文件添加hypervisor.cpuid.v0 FALSE mce.enable TRUE vhv.enable TRUE或者在 VMware 图形界面虚拟机设置 → 处理器 → 勾选虚拟化引擎下的虚拟化 Intel VT-x/EPT 或 AMD-V/RVI。4. 验证WSLwsl能正常进入VMware启动 Ubuntu 虚拟机能跑cat /proc/cpuinfo | grep vmx看到 vmx 标志两边都能用。性能上 VMware 比纯硬件虚拟化差一点但日常开发足够。三、副作用提醒开了 Hyper-V 兼容模式之后VMware 虚拟机性能下降约 5-15%CPU 密集型更明显部分老游戏反作弊会报错Hyper-V 启动后驱动栈变了Docker Desktop 走 WSL 2 后端会自动启用没问题如果不常跑 VMware建议平时关掉 Hyper-VVMware 用完后再开性能更好。四、WSL 下 cd 命令支持 Windows 路径上面解决 WSL 和 VMware 共存之后日常会有个痛点终端在 WSL 里路径却在 Windows 上。比如当前目录是/home/user想跳到E:\git\source# 反斜杠被 bash 吃掉路径变成 E:git-labor... 完全错cdE:\git\source# 加引号能转义但每次都要加引号很烦cdE:\git\source解决方案覆盖 cd 命令在~/.bashrc末尾加# --- smart cd: 支持 Windows 路径自动转换为 WSL 路径 ---cd(){# 情况1: 带引号或正斜杠的 Windows 路径反斜杠完好if[$#-ge1][[$1~^[A-Za-z]:([\\/]|$)]];thenbuiltincd$(wslpath-u$1)returnfi# 情况2: 不加引号输入反斜杠已被 bash 吃掉 (E:git-labor...)# 从历史记录取回原始输入行还原路径if[$#-ge1][[$1~^[A-Za-z]:]][!-d$1];thenlocalrawraw$(HISTTIMEFORMATbuiltinhistory12/dev/null|sed-Es/^ *[0-9]\*? *//)raw${raw#cd}raw${raw#${raw%%[![:space:]]*}}# 去掉前导空格raw${raw%${raw##*[![:space:]]}}# 去掉尾部空格raw${raw#\};raw${raw%\}if[[$raw~^[A-Za-z]:[\\/]]];thenbuiltincd$(wslpath-u$raw)returnfifibuiltincd$}启用# 写入后立即生效当前终端source~/.bashrc# 新终端自动生效效果# 三种写法都能跑cdE:\git\source# 不加引号cdE:\git\source# 加引号cdE:/git/source# 正斜杠也行# 普通 Linux 路径不受影响cd~/projectscd/tmp三种 Windows 路径写法不加引号 / 加引号 / 正斜杠都能自动转成 WSL 路径普通 Linux cd 行为完全不变。关键点用了builtin cd避免递归调用自己情况 2 是核心bash 会在 cd 执行前吃掉反斜杠必须从 history 1 里还原原始命令没启用wslpath的 WSL 1 也能用wslpath 是 WSL 自带命令五、参考WSL 与 VMware 共存https://blog.csdn.net/xie__jin__cheng/article/details/140538917VMware Hyper-V 兼容模式文档https://docs.vmware.com/cn/VMware-Workstation-Pro/index.html装一台机器跑两个世界是 Win11 时代开发者的常态。WSL 不是 Linux 桌面VMware 不是 Linux 服务器两个都要的时候让 Hyper-V 当中间人就行。