必须执行版本升级操作才能将WSL1升级至WSL2。方法包括:一、用wsl --set-version命令升级现有发行版;二、设默认版本后新装发行版;三、导出导入重建为WSL2实例;四、检查修复虚拟化、内核等依赖项。

如果您已在Windows 11上安装了WSL1,但需要升级至WSL2以获得完整Linux内核支持、Docker兼容性及更高I/O性能,则必须执行版本升级操作。以下是多种可行的升级方法:
一、使用wsl --set-version命令升级现有发行版
该方法直接将已安装的WSL1发行版转换为WSL2架构,无需重装系统,适用于已存在Ubuntu、Debian等分发版的用户。
1、以管理员身份打开PowerShell或Windows终端。
2、运行命令列出当前所有已安装的发行版及其版本:wsl -l -v。
3、确认目标发行版名称(例如Ubuntu-22.04)且其VERSION列为1。
4、执行升级命令,将发行版名称替换为实际名称:wsl --set-version 发行版名称 2。
5、等待转换完成,状态显示“Conversion in progress…”后自动终止,再次运行wsl -l -v验证VERSION是否已变为2。
二、设置WSL默认版本后新装发行版启用WSL2
此方法不修改现有WSL1实例,而是确保后续所有新安装的发行版默认采用WSL2,适合需保留旧环境并新增开发环境的场景。
1、以管理员身份打开PowerShell。
2、运行命令启用WSL2默认行为:wsl --set-default-version 2。
3、执行命令查看可选发行版列表:wsl --list --online。
4、选择目标发行版(如Ubuntu-24.04),运行安装命令:wsl --install -d Ubuntu-24.04。
5、安装完成后,运行wsl -l -v确认新发行版VERSION列显示为2且STATE为Stopped或Running。
三、通过导出导入方式重建为WSL2实例
当原发行版出现严重配置损坏、内核模块冲突或需迁移存储位置时,可先导出为tar归档,再以WSL2模式重新导入,实现干净升级。
1、在PowerShell中导出当前WSL1发行版(以Ubuntu为例):wsl --export Ubuntu C:\backup\ubuntu-wsl1.tar。
2、注销并终止该发行版:wsl --unregister Ubuntu。
3、创建新目录用于存放WSL2实例(如D:\WSL\Ubuntu24)。
4、执行导入命令并强制指定WSL2版本:wsl --import Ubuntu D:\WSL\Ubuntu24 C:\backup\ubuntu-wsl1.tar --version 2。
5、启动新实例:wsl -d Ubuntu,验证uname -r输出是否含“microsoft”字样及内核版本高于5.10。
四、检查并修复WSL2升级失败的常见依赖项
若上述任一升级命令报错(如“Invalid argument”、“WSL version update failed”或“Kernel not found”),说明底层依赖未就绪,需逐项验证并修正。
1、确认系统已启用虚拟机平台:dism.exe /online /get-featureinfo /featurename:VirtualMachinePlatform,状态应为“已启用”。
2、确认BIOS/UEFI中已开启CPU虚拟化(Intel VT-x 或 AMD-V),可通过任务管理器“性能”页签底部查看“虚拟化”是否显示“已启用”。
3、检查是否已安装WSL2内核更新包:访问注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\Kernel,确认Version值存在且不为空。
4、若内核缺失,手动下载并安装最新版:https://aka.ms/wsl2kernel。
5、运行wsl --update强制刷新内核,并重启WSL服务:wsl --shutdown后再尝试升级命令。










