【完整教程】WSL发行版迁移到D盘
要将当前安装在C盘的WSL发行版迁移到D盘,可通过导出/导入法实现,这是最通用且安全的方法。以下是详细步骤:
📦 一、导出/导入法迁移WSL(推荐)
✅ 步骤1:准备工作
- 关闭所有WSL实例:
wsl --shutdown # 终止所有运行中的WSL
- 查看当前发行版名称:
wsl -l -v # 记录需迁移的发行版名称(如 `Ubuntu-22.04`)
🗂️ 步骤2:导出发行版到tar文件
wsl --export <发行版名称> D:\wsl-backup.tar
示例:
wsl --export Ubuntu-22.04 D:\wsl-backup.tar
D:\wsl-backup.tar
是导出的备份文件路径,可自定义。
🗑️ 步骤3:注销原发行版
wsl --unregister <发行版名称>
示例:
wsl --unregister Ubuntu-22.04 # 删除C盘中的旧实例,释放空间
📥 步骤4:导入到D盘新位置
wsl --import <发行版名称> D:\WSL\Ubuntu D:\wsl-backup.tar --version 2
参数说明:
<发行版名称>
:与注销前一致(如Ubuntu-22.04
)D:\WSL\Ubuntu
:D盘目标目录(需提前创建)--version 2
:强制使用WSL2(推荐)
👤 步骤5:设置默认用户(避免启动后默认为root)
<发行版名称>.exe config --default-user <原用户名>
示例:
ubuntu2204.exe config --default-user yourname # 针对Ubuntu 22.04
其他发行版替换可执行文件名(如
kali.exe
)。
✔️ 步骤6:验证迁移
wsl -d <发行版名称> # 启动WSL
df -h / # 检查根目录是否在D盘(如 `/mnt/d/WSL/Ubuntu`)
⚙️ 二、其他方法补充
方法二:wsl --manage
直接移动(仅限Windows 11 22H2+)
wsl --shutdown
wsl --manage <发行版名称> --move D:\WSL\Ubuntu
适用场景:
无需导出/导入,但需最新Windows版本支持。
方法三:注册表修改默认路径(仅限新安装)
- 打开注册表:
Win + R
→ 输入regedit
- 导航至:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
- 新建字符串值 → 命名
DefaultBasePath
→ 值设为D:\WSL
- 此后新安装的发行版将自动存到D盘。
⚠️ 注意事项
- 空间要求:
- D盘需有足够空间(建议 ≥10GB)。
- 权限问题:
- 所有命令需在管理员权限的PowerShell中执行。
- CUDA等环境兼容性:
- 迁移后需重新验证CUDA路径(如
/usr/local/cuda
)是否正常。
- 迁移后需重新验证CUDA路径(如
- 备份重要性:
- 导出tar文件后暂不删除,待验证成功后再清理。
💎 迁移前后路径对比
项目 | 迁移前(C盘) | 迁移后(D盘) |
---|---|---|
WSL镜像文件 | C:\Users\<用户>\AppData\Local\Packages\... | D:\WSL\Ubuntu\ext4.vhdx |
启动命令 | wsl | 不变(自动指向新位置) |
磁盘占用 | 释放C盘空间 | 占用D盘空间 |
完成迁移后,可删除备份文件
D:\wsl-backup.tar
以释放空间。
迁移后,WSL的所有数据(包括已安装的CUDA、Python环境)均保留,仅存储位置变更,不影响开发环境使用。若遇启动失败,检查路径权限或重新设置用户即可。