前言

因为一些个人原因,需要将原先的 WSL1 升级到 WSL2,参考微软文档,记录踩坑

一、检查版本

对于 x64 系统目前的要求是 1903 或者更高,Build 18362 或者更高。使用 win+R 输入 winver 来检查自己的版本
version

二、启动虚拟机功能

管理员模式启动 powershell 输入

1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

启动虚拟机功能
然后重启电脑

三、下载 Linux 内核升级包

下载最新升级包
package

四、设置 WSL2 作为默认版本

管理员 powershell 中运行

1
wsl --set-default-version 2

五、转换 WSL

使用该指令查看 wsl 状态

1
wsl -l -v

我的输出

1
2
  NAME      STATE           VERSION
* Ubuntu Stopped 1

转换 WSL

1
wsl --set-version Ubuntu 2

输出

1
2
3
4
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。
有关信息,请访问 https://aka.ms/wsl2-install

这里在我搜索了 issue 后发现主要还是 Hyper-V、虚拟平台等问题,可以试一试管理员模式运行以下指令

1
2
3
4
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
bcdedit /set hypervisorlaunchtype auto

最主要的应该是

1
2
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
bcdedit /set hypervisorlaunchtype auto

重新转换
转换完成

后记

VMware 老版本与 Hyper-V 冲突,得找个时间去更新到最新版本兼容