Skip to content

WSL2 迁移出 C 盘

本文介绍如何将 WSL2 发行版从 C 盘迁移到其他磁盘,释放系统盘空间。提供两种方案:官方迁移命令和手动导出导入。

💾 为什么要迁移 WSL2?

WSL2 默认安装在 C 盘,随着使用时间增长会占用大量空间:

  • 虚拟磁盘文件:WSL2 使用 vhdx 文件存储数据,可能达到数十 GB
  • 开发环境:Node.js、Python 等工具的依赖包会持续增长

将 WSL2 迁移到其他磁盘可以有效释放 C 盘空间。

📋 前置准备

  • 确保目标磁盘有足够空间(建议预留 50GB 以上)
  • 关闭所有正在运行的 WSL 实例
  • 备份重要数据

✅ 方案一:官方迁移命令(推荐)

适用版本:WSL 2.3.11 及以上

这是最简单、最安全的迁移方式,由 WSL 官方提供支持。

1. 查看可用命令

powershell
wsl --help

可以看到 --manage --move 命令:

WSL 迁移命令

2. 停止 WSL

powershell
wsl --shutdown

3. 开始迁移

powershell
wsl --manage Ubuntu-22.04 --move "D:\Software\WSL\Ubuntu-22.04"

参数说明

  • Ubuntu-22.04:要迁移的发行版名称
  • D:\Software\WSL\Ubuntu-22.04:目标路径

迁移过程需要几分钟,请耐心等待。

4. 验证迁移结果

迁移完成后,可以看到成功提示,并可在新目录验证:

迁移成功

优点

  • 官方支持,安全可靠
  • 操作简单,一条命令完成
  • 自动处理文件迁移和配置更新
  • 不会丢失用户数据和设置

🔄 方案二:手动导出导入

适用场景:WSL 版本低于 2.3.11 或需要更精细的控制

这种方式通过导出、注销、导入三步完成迁移。

注意

此方案未经实际验证,操作前请务必备份重要数据。

1. 停止 WSL

powershell
wsl --shutdown

2. 导出发行版

将当前发行版导出为 tar 文件:

powershell
wsl --export Ubuntu-22.04 "D:\Software\WSL\Ubuntu-22.04-export.tar"

导出过程可能需要几分钟,取决于数据量大小。

3. 注销原发行版

powershell
wsl --unregister Ubuntu-22.04

警告

此操作会删除 C 盘上的原发行版,请确保已成功导出备份文件。

4. 导入到新位置

powershell
wsl --import Ubuntu-22.04 "D:\Software\WSL\Ubuntu-22.04" "D:\Software\WSL\Ubuntu-22.04-export.tar"

参数说明

  • Ubuntu-22.04:发行版名称
  • D:\Software\WSL\Ubuntu-22.04:新的安装目录
  • D:\Software\WSL\Ubuntu-22.04-export.tar:导出的备份文件

5. 恢复默认用户

导入后默认使用 root 用户,需要恢复原用户:

powershell
ubuntu2204 config --default-user <username>

🔧 常见问题

如何查看 WSL 版本?

powershell
wsl --version

如果版本低于 2.3.11,建议先更新 WSL:

powershell
wsl --update

如何查看已安装的发行版?

powershell
wsl --list --verbose

会显示所有已安装的发行版名称、状态和版本。

Docker Desktop 如何迁移到非 C 盘?

Docker Desktop 安装位置

如果你还没有安装 Docker Desktop,或者想将 Docker Desktop 和数据目录也迁移到非 C 盘,请参考 Windows 11 家庭版安装 Docker Desktop,其中有详细的自定义安装路径说明。

相关资源

相关文章

本站总访问量 --