前言

因为一些个人原因,需要将原先的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冲突,得找个时间去更新到最新版本兼容