把 WSL 发行版存储从系统盘(C 盘)迁移到非系统盘,可释放 C 盘空间,并降低系统盘压力。推荐使用 导出 / 注销 / 重新导入,安全且通用。

方法:导出再导入到非系统盘【推荐】

假设要把 Ubuntu 从 C 盘迁移到 D:\WSL\Ubuntu

1. 查看当前 WSL 发行版名称

在 PowerShell 中执行:

wsl -l -v

示例输出:

  NAME      STATE           VERSION
* Ubuntu    Stopped         2

这里发行版名称是 Ubuntu

2. 关闭 WSL

wsl --shutdown

3. 导出发行版

创建目标目录:

mkdir D:\WSL

导出为 tar 文件:

wsl --export Ubuntu D:\WSL\Ubuntu.tar

Ubuntu 替换成你自己的发行版名称。

4. 注销原来的 WSL 发行版

注意:这一步会删除原来 C 盘中的 WSL 数据,请先确认上一步导出成功。

wsl --unregister Ubuntu

5. 导入到非系统盘

mkdir D:\WSL\Ubuntu
wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\Ubuntu.tar --version 2

说明:

  • 第一个 Ubuntu:新的发行版名称
  • D:\WSL\Ubuntu:WSL 实际存储位置
  • D:\WSL\Ubuntu.tar:之前导出的备份文件
  • --version 2:使用 WSL2

6. 启动测试

wsl -d Ubuntu

确认可以正常进入 Linux。

恢复默认用户

导入后的 WSL 可能默认用 root 登录,需要恢复成原来的用户。

1. 进入 WSL 查看用户名

ls /home

假设用户名是 yourname

2. 设置默认用户

不同发行版方式略有不同。

Ubuntu 可在 PowerShell 中执行:

ubuntu config --default-user yourname

如果发行版命令不是 ubuntu,可查看开始菜单中的发行版名称,或尝试:

ubuntu2004 config --default-user yourname
ubuntu2204 config --default-user yourname

注意事项

  1. 先导出、再注销:注销不可逆,导出失败时不要注销。
  2. 导出文件可保留一段时间:确认新环境正常后再删除 Ubuntu.tar,以节省磁盘空间。
  3. 目标盘空间要充足:导出 tar 和导入后的虚拟磁盘都会占用空间。
  4. WSL2 推荐:导入时加上 --version 2,与当前主流用法一致。

常用命令速查

# 列出发行版
wsl -l -v

# 关闭所有 WSL
wsl --shutdown

# 导出
wsl --export <发行版名> <导出路径.tar>

# 注销,谨慎使用,除非你自动在做什么
wsl --unregister <发行版名>

# 导入
wsl --import <发行版名> <安装目录> <导出路径.tar> --version 2

# 启动指定发行版
wsl -d <发行版名>

总结

WSL 存储迁移的核心步骤是:关闭 WSL → 导出 tar → 注销原发行版 → 导入到非系统盘 → 恢复默认用户。按上述流程操作,即可把发行版从 C 盘迁移到 D 盘或其他数据盘。