【WSL】C盘迁移
将已安装的WSL迁移到D盘释放C盘空间,两个经过验证的安全迁移方案,可以根据自身情况选择。整个迁移流程和方案选择,可以参考下面的路线图:
🛠️ 迁移前的准备工作
开始操作前,请先完成以下几步:
- 以管理员身份运行PowerShell:在开始菜单搜索“PowerShell”,右键点击并选择“以管理员身份运行”。
- 查看已安装的WSL发行版:在PowerShell中输入以下命令,记住要迁移的发行版名称(例如
Ubuntu-22.04)并确保其状态为Stopped。如果状态为Running,需要进行下一步。wsl -l -v - 关闭所有WSL实例:为确保迁移顺利,请终止所有正在运行的WSL实例。
wsl --shutdown - (可选但建议)备份重要数据:如果的WSL系统里有非常重要的项目或数据,可以提前备份。
⚡ 方案一:使用 --move 命令(快速便捷,但有系统要求)
如果使用的是 Windows 11 22H2 或更新版本,可以尝试更直接的移动命令。
- 直接移动WSL发行版:
wsl --manage <发行版名称> --move <目标路径>例如:
wsl --manage Ubuntu-22.04 --move D:\WSL\Ubuntu请注意:此命令可能需要最新的WSL内核版本支持。如果系统提示不支持
--manage命令,请使用方案一。
🔧 方案一:官方导出/导入法(通用性强)
这个方法适用于绝大多数Windows系统上的WSL迁移,核心是通过导出、再导入到新位置来实现。
-
将WSL发行版导出为备份文件:
wsl --export <发行版名称> D:\wsl_backup.tar请将
<发行版名称>替换为查到的实际名称,例如wsl --export Ubuntu-22.04 D:\wsl_backup.tar。这个过程可能需要几分钟,请耐心等待。 -
注销(删除)原有的WSL发行版:
wsl --unregister <发行版名称>注意:此操作会删除C盘上的原系统,但由于我们已经导出备份,所以数据是安全的。执行后C盘空间会立即释放。
-
将备份导入到D盘的新位置:
首先,在D盘创建一个目标文件夹,例如D:\WSL\Ubuntu,然后执行导入。wsl --import <发行版名称> D:\WSL\Ubuntu D:\wsl_backup.tar --version 2参数说明:
<发行版名称>:可以沿用旧名,也可为新系统起名(如MyUbuntu)。D:\WSL\Ubuntu:是准备的新家路径。D:\wsl_backup.tar:是第一步导出的备份文件路径。--version 2:指定使用WSL 2(如果原系统是WSL 1,需改为--version 1)。
-
设置默认登录用户:
完成导入后,首次启动会默认以root用户登录。需要恢复为之前的普通用户。- 方法A:使用发行版特定命令(例如对于Ubuntu 20.04):
Ubuntu2004.exe config --default-user <的用户名>不同发行版的命令略有差异,例如Ubuntu 22.04可能是
ubuntu2204.exe。可以在PowerShell中通过输入ubuntu然后按Tab键尝试自动补全来找到正确的命令。 - 方法B:通过编辑WSL配置文件:
- 先启动迁移后的发行版(会以root身份登录):
wsl -d <发行版名称> - 在WSL内部,创建并编辑
/etc/wsl.conf:nano /etc/wsl.conf - 在文件中添加以下内容(将
<的用户名>替换为的实际用户名):[user] default=<的用户名> - 按
Ctrl+X,然后按Y回车保存。退出WSL并关闭PowerShell,重新启动WSL即可。
- 先启动迁移后的发行版(会以root身份登录):
- 方法A:使用发行版特定命令(例如对于Ubuntu 20.04):
✅ 迁移后验证与优化
-
验证新位置:
- 再次运行
wsl -l -v,确认发行版状态正常。 - 启动迁移后的版本
wsl -d <迁移后的发行版名称> - 在WSL内执行
df -h,查看/根文件系统的挂载点是否指向了D盘的新路径。
- 再次运行
-
设置默认发行版(可选):
如果有多个WSL发行版,可以将刚迁移的设置为首选:wsl --set-default <迁移后的发行版名称> -
清理临时文件:
确认新的WSL系统运行无误后,可以安全地删除在第一步中创建的D:\wsl_backup.tar备份文件,以释放磁盘空间。
