对于经常折腾 DevOps 自动化部署、跑本地 Docker 容器或者进行 AI 模型推理测试的开发者来说,一个原生的 Linux 环境是刚需。尤其是不想忍受 Windows 版 Docker Desktop 那极其臃肿的内存占用时,在 WSL 2(Windows Subsystem for Linux 2)底层部署纯血的原生 Docker,是最高效的解决方案。
但 WSL 2 默认会将系统文件和拉取的庞大镜像全部堆在 C 盘。今天这篇教程,就带你走一遍“极速安装(附避坑指南) + 无损迁移非系统盘 + 网络环境调优”的全流程。
阶段一:安装 WSL 2 核心环境与避坑指南
这里提供两种安装方式:常规的命令行安装(默认装在 C 盘,需后续迁移)和硬核的镜像导入法(直接安家在 D 盘)。
路线 A:官方命令行一键安装(推荐大多数开发者)
- 打开管理员终端: 右键点击 Windows 开始菜单图标,选择 终端 (管理员) 或 Windows PowerShell (管理员)。
- 查询可用列表: 输入
wsl -l -o查看支持的系统列表。 - 指定版本安装: 例如安装 Ubuntu 24.04:PowerShell
wsl --install -d Ubuntu-24.04
🔥 史诗级大坑预警:虚拟化报错
很多小伙伴敲完回车后,屏幕会爆红提示“未启用虚拟化”。这并非电脑损坏,而是主板出厂时锁定了硬件虚拟化功能。
解法: 重启电脑,狂按
F2/F12或Delete键进入 BIOS 设置。在高级设置或 CPU 选项中,找到Intel VT-x、Virtualization Technology或 AMD 对应的SVM Mode,将其状态改为 Enabled (开启),按 F10 保存重启后,即可一路绿灯完成安装。
路线 B:硬核导入法(安装任意版本并直达 D 盘)
如果微软列表里没有你想要的特定版本,可以直接使用 Rootfs 镜像导入法,彻底跳过后续的 C 盘迁移步骤。
- 前往 Linux 官方镜像站下载对应版本的
rootfs.tar.xz压缩包。 - 在 D 盘新建安装文件夹(如
D:\WSL\Debian-13)。 - 在 PowerShell 执行导入命令解压部署:PowerShell
wsl --import Debian-13 D:\WSL\Debian-13 D:\Downloads\debian-13-rootfs.tar.xz - 输入
wsl -d Debian-13进入系统即可。
阶段二:将路线 A 的系统无损迁移至 D 盘 (两种流派)
如果你使用了路线 A,现在系统的本体正躺在 C 盘。这里为你提供两种迁移流派。
性能提示:目标盘必须是高速固态硬盘,若是机械硬盘会导致读写性能断崖式下降。
流派一:VHDX 物理直移法(极客秒传流,速度极快)
这是利用新版 WSL 特性的高效玩法,全程只需几秒钟,且不需要额外的硬盘空间来存放临时文件。
1.彻底关闭 WSL:确保文件未被占用。
打开 PowerShell,输入命令:wsl --shutdown。
2.转移 ext4.vhdx 文件:找到并剪切系统的虚拟物理硬盘。
使用 Everything 等搜索工具全盘搜索 ext4.vhdx(默认隐藏在 C 盘的 AppData 目录下)。找到后,将其剪切并粘贴到 D 盘的目标目录(例如 D:\WSL\Ubuntu\ext4.vhdx)。
3.注销 C 盘原注册信息:极其重要:必须确认文件已移走。
执行 wsl -l -v 确认系统名称,然后执行注销:
PowerShell
wsl --unregister Ubuntu-24.04
4.在原处重新挂载:让系统重新识别虚拟盘。
执行原地导入命令:
PowerShell
wsl --import-in-place Ubuntu-24.04 D:\WSL\Ubuntu\ext4.vhdx
流派二:官方标准打包法(传统稳妥流)
如果你使用的是较老版本的 Windows,或者直移法报错,可以使用微软官方传统的“打包再解包”大法。缺点是耗时较长,且需要双倍的临时硬盘空间。
- 关闭子系统:
wsl --shutdown - 打包导出(耗时取决于系统大小):
wsl --export Ubuntu-24.04 D:\ubuntu-backup.tar - 注销原系统释放 C 盘:
wsl --unregister Ubuntu-24.04 - 导入到 D 盘并解包:
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu D:\ubuntu-backup.tar(成功后可删除 tar 文件)。
关键收尾:恢复默认登录用户
无论使用哪种流派,重新注册的系统默认都会以 root 账户登录。请在 PowerShell 中执行以下命令恢复普通用户身份:
PowerShell
Ubuntu-24.04 config --default-user 你的用户名
阶段三:进阶环境调优
系统安家落户后,强烈建议顺手完成以下两项高阶配置。
1. 限制内存“无底洞”
WSL 2 默认会动态占用系统最高 50% 的内存。按下 Win + R 键输入 %USERPROFILE% 回车,新建 .wslconfig 文件,写入以下内容限制资源:
Ini, TOML
[wsl2]
memory=8GB # 限制最大内存
processors=4 # 限制 CPU 核心数
pageReporting=true # 开启空闲内存释放
执行 wsl --shutdown 后下次启动生效。
2. 打通宿主机网络(搭配自定义路由加速)
WSL 2 处于独立的虚拟网段。如果你在宿主机上使用了 cfy 等自己编写的路由优选或代理加速脚本,可以通过以下配置让 WSL 内核共享网络环境:
在 Linux 的 ~/.bashrc 或 ~/.zshrc 末尾添加:
Bash
# 获取 Windows 宿主机 IP
export hostip=$(ip route | awk '/default/ { print $3 }')
# 假设代理本地监听 7890 端口,请按实际情况修改
export ALL_PROXY="http://$hostip:7890"
执行 source ~/.bashrc。至此,你在终端内部署原生 Docker、拉取 GitHub 源码库时,网络将会丝般顺滑。!