Windows 10 和 Windows 11 上跑 Linux,现在最主流的方案就是 WSL。不过很多刚接触的朋友装好之后发现,自己用的还是第一代 WSL,性能、兼容性、Docker 支持都不太顺手。这篇文章就专门聊一件事:小白如何稳稳当当把 WSL 升级成 WSL2,从原理、检查、安装、配置到排坑,全程实操,一条龙讲完。
我一开始接触 WSL 的时候也踩过不少坑,什么 wsl --install 卡半天、内核更新包下载失败、莫名其妙报 error_file_not_found,都遇到过。这篇博文里的思路和步骤,就是我反复折腾之后沉淀下来的完整流程,照着做基本能一次搞定。
1. 升级前的准备工作:先搞懂 WSL1 和 WSL2 到底差在哪
1.1 为什么推荐升级到 WSL2
很多教程上来就让你敲命令,但搞不清楚 WSL1 和 WSL2 区别的人,出了问题也不知道怎么排查。简单说,WSL1 是微软写的一个“翻译层”,把 Linux 系统调用翻译成 Windows 系统调用,好处是启动快、内存占用低,但坏处是兼容性不行,很多 Linux 软件跑不起来,Docker 也没法直接使用。
WSL2 则是微软在 Windows 里面内置的一个轻量级虚拟机,跑的是真正完整的 Linux 内核。这意味着你几乎可以把它当成一台全功能的 Linux 服务器来用,Docker 直接支持,GPU 加速也有,文件 IO 性能提升非常明显。
用一个不恰当但很好懂的类比:WSL1 像是“同声传译”,两边各说各的语言,虽然能交流但效率有限;WSL2 像是直接把一位外国专家请到了公司内部,交流完全无障碍。所以只要条件允许,我都建议升级到 WSL2。
1.2 升级前先确认当前 WSL 版本
打开 PowerShell 或者 Windows Terminal,输入:
powershell复制wsl --list --verbose
或者简写:
powershell复制wsl -l -v
输出结果里会有一个 VERSION 列,如果显示的是 1,说明你还在用 WSL1;如果显示 2,恭喜你已经是 WSL2 了。如果显示“没有已安装的分发版”,那就说明你只是安装了 WSL 框架,还没有装任何 Linux 发行版,这时候更应该看看这篇文章。
如果 wsl 命令直接报错“无法将‘wsl’项识别为 cmdlet”,多半是系统太老或者没装 WSL 框架,下文会专门说这个。
1.3 系统要求和硬件条件自查
升级 WSL2 不是所有 Windows 版本都能干,需要满足几个条件:
| 条件 | 要求 | 说明 |
|---|---|---|
| Windows 10 版本 | 2004 及以上,或者 1903/1909 + KB5004296 补丁 | 老版本也能升,但建议直接更新到最新 |
| Windows 11 | 任意正式版 | 原生支持,体验最好 |
| 处理器 | 支持并开启虚拟化 | BIOS/UEFI 中开启 Intel VT-x 或 AMD-V |
| 内存 | 建议 8GB 以上 | 实际 4GB 也能跑,但开 Docker 会比较吃紧 |
| 磁盘 | SSD 优先 | WSL2 的虚拟磁盘读写性能跟物理盘直接相关 |
检查虚拟化是否开启,可以在 PowerShell 里输入:
powershell复制systeminfo
找到“Hyper-V 要求”那一项,如果四条全是“是”,就说明虚拟化没问题。如果显示“已检测到虚拟机监控程序”,并且“虚拟化固件中已启用虚拟化”是“否”,那就要重启进 BIOS 去开虚拟化。
折腾半天发现升级失败,十有八九是这一步没做好。
1.4 备份已有数据:升级前千万别偷懒
这一步很容易被忽略,但我必须强调:在把 WSL1 转换成 WSL2 之前,先备份你的数据。
WSL2 和 WSL1 的磁盘架构完全不同。WSL1 直接使用 Windows 文件系统,WSL2 则使用一个 ext4.vhdx 虚拟磁盘文件。升级转换过程中,系统会把 WSL1 里的文件迁移到新的虚拟磁盘里,这个迁移过程偶尔会出幺蛾子。
最简单的备份方式,把 WSL 里重要的文件复制到 Windows 目录下,或者直接用 wsl --export 导出整个发行版:
powershell复制wsl --export Ubuntu D:\backup\ubuntu-backup.tar
如果转换失败,还能用 wsl --import 把数据恢复回来。不要嫌麻烦,我就是因为懒,有一次转换中断,里面一个项目代码差点没了,后来花了一晚上才从临时文件里找回来。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 两条升级路线:图形界面操作和命令行操作
2.1 路线一:纯界面操作,适合不喜欢碰命令的朋友
升级 WSL2 最稳妥的方式,其实是在 Windows 的“启用或关闭 Windows 功能”里把需要的组件打开,流程如下:
- 按下
Win + R,输入optionalfeatures,回车。 - 在弹出的窗口里
