在 VMware Workstation 15 中运行 WSL2

Tom*_*ale 4 vmware-workstation hyper-v windows-subsystem-for-linux

VMWare 工作站 15.5.5 现在支持主机 Hyper-V 模式,从而可以运行 WSL 2。

如何在 VMware 来宾中设置适用于 Linux 2 的 Windows 子系统?

Tom*_*ale 6

在你开始之前

自从安装 WSL2 以来,我注意到速度变慢了,因此我首先建议您拍摄快照并比较运行 WSL2 之前/之后的性能。也许 WSL1 更适合您的需求。VMware 似乎并不热衷于发布虚拟化 Intel VT-x/EPT 的性能指标。

安装适用于 Linux 的 Windows 子系统

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Run Code Online (Sandbox Code Playgroud)

启用虚拟机平台

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Run Code Online (Sandbox Code Playgroud)

启用英特尔 VT-x/EPT

上面已禁用重新启动/norestart,因此请关闭电源并启用 Intel VT-x:

设置 -> 硬件 -> 处理器 -> 虚拟化 Intel VT-x/EPT

再次注意此页面的建议:

[...]它会极大地减慢你的虚拟机的速度[...]

设置默认 WSL 版本 2

对于新安装:

wsl --set-default-version 2
Run Code Online (Sandbox Code Playgroud)

对于现有安装(例如 ubuntu)

wsl --set-version Ubuntu 2
Run Code Online (Sandbox Code Playgroud)

故障排除

如果出现 WSL 十六进制错误,请更新内核。我在启用 VT-x/EPT 之前就遇到了这个错误,所以也许你不会遇到它。

我没有记录需要内核更新的错误,因此请编辑此答案或在评论中发布错误消息。

  • 请注意,截至 2022 年 2 月,您无法同时在 VMware 来宾和主机上运行 WSL 2。如果主机上启用了 WSL 2(以及 Hyper-V),VMware 将使用 Hyper-V 作为虚拟化引擎,仅提供 UI 以及声音和 USB 虚拟化等功能。但是,如果主机启用了 Hyper-V,则 Workstation 无法执行嵌套虚拟化(需要在来宾中运行 WSL2)。理论上这个问题是可以解决的,因为 Hyper-V 本身确实允许嵌套虚拟化,而且微软和 VMware 已经合作,希望这个问题能在未来的 Workstation 版本中得到解决。 (5认同)