Skip to content

Win10 WSL 迁移 Ubuntu 至 D 盘

约 959 字大约 3 分钟

WSLUbuntuWindows磁盘迁移

2026-04-16

前言

WSL(Windows Subsystem for Linux)是 Windows 10/11 提供的一个强大功能,它允许用户在 Windows 系统中原生运行 Linux 环境。随着 WSL 的使用时间增长,Ubuntu 子系统占用的磁盘空间会越来越大,而默认安装在系统盘(C 盘)会逐渐导致 C 盘空间不足。本文将详细介绍如何将 WSL Ubuntu 从 C 盘迁移到 D 盘,以释放系统盘空间。

前置条件

  • Windows 10 版本 2004 或更高版本(构建 19041 及以上)
  • 已安装 WSL 2 及 Ubuntu 子系统
  • 目标磁盘(D 盘)有足够的可用空间

操作步骤

第一步:查看当前 WSL 状态

在迁移之前,首先需要确认 Ubuntu 子系统的当前状态。打开 PowerShell 或命令提示符,执行以下命令:

wsl -l -v

执行结果示例:

Microsoft Windows [版本 10.0.26200.5733]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu            Stopped         2
  docker-desktop    Stopped         2

如果看到 Ubuntu 状态为 Running(运行中),需要先关闭它。

第二步:关闭 WSL 虚拟机

如果 Ubuntu 正在运行,需要先关闭 WSL 虚拟机,以確保数据一致性。执行以下命令:

wsl --shutdown

注意

此命令会关闭所有正在运行的 WSL 发行版,请确保已保存所有工作。

关闭后再次查看状态,确认 Ubuntu 已停止:

C:\Users\Administrator> wsl -l -v
  NAME              STATE           VERSION
* docker-desktop    Stopped         2
  Ubuntu            Stopped         2

第三步:导出 Ubuntu 镜像

在迁移之前,需要先将 Ubuntu 导出为 VHDX 格式的镜像文件。建议先创建一个备份目录:

wsl --export Ubuntu D:\WSL_bak\ubuntu.vhdx --vhd

执行结果:

C:\Users\Administrator> wsl --export Ubuntu D:\WSL_bak\ubuntu.vhdx --vhd
正在导出,这可能需要几分钟时间。 (7792 MB)
操作成功完成。

提示

  • 导出过程可能需要几分钟时间,取决于 Ubuntu 占用的空间大小
  • 确保目标磁盘有足够的可用空间

第四步:注销原有 Ubuntu

导出完成后,需要注销(删除)原有的 Ubuntu 发行版。

警告

请务必确保已完成第三步的导出备份操作! 注销操作会立即删除原有的 WSL 发行版数据,如果没有提前备份,将导致数据无法恢复。

wsl --unregister Ubuntu

执行结果:

C:\Users\Administrator> wsl --unregister Ubuntu
正在注销。
操作成功完成。

第五步:重新导入 Ubuntu 到目标位置

现在将导出的镜像重新导入到 D 盘的指定目录:

wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL_bak\ubuntu.vhdx --vhd

执行结果:

C:\Users\Administrator> wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL_bak\ubuntu.vhdx --vhd
操作成功完成。

第六步:验证迁移结果

迁移完成后,验证 Ubuntu 是否可以正常启动:

wsl -l -v
wsl -d Ubuntu

迁移后验证

迁移成功后,你可以通过以下方式验证:

  1. 检查状态:确认 Ubuntu 状态为 Running
  2. 检查存储位置:Ubuntu 的虚拟硬盘文件应位于 D:\WSL\Ubuntu 目录
  3. 测试运行:执行 wsl -d Ubuntu 进入 Ubuntu 环境

清理临时文件

迁移成功后,如果一切正常,可以删除之前导出的临时备份文件以释放空间。

常见问题

Q1:迁移后 Ubuntu 无法启动?

确保使用 --vhd 参数,并且导入路径是空目录。如果仍有问题,可以尝试重新导出导入。

Q2:如何迁移其他 WSL 发行版?

方法完全相同,只需将命令中的 Ubuntu 替换为对应的发行版名称即可(如 docker-desktopDebian 等)。

Q3:能否迁移到其他磁盘?

可以,只需要修改目标路径即可。例如迁移到 E 盘:wsl --import Ubuntu E:\WSL\Ubuntu ...