外观
Win10 WSL 迁移 Ubuntu 至 D 盘
前言
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迁移后验证
迁移成功后,你可以通过以下方式验证:
- 检查状态:确认 Ubuntu 状态为 Running
- 检查存储位置:Ubuntu 的虚拟硬盘文件应位于
D:\WSL\Ubuntu目录 - 测试运行:执行
wsl -d Ubuntu进入 Ubuntu 环境
清理临时文件
迁移成功后,如果一切正常,可以删除之前导出的临时备份文件以释放空间。
常见问题
Q1:迁移后 Ubuntu 无法启动?
确保使用 --vhd 参数,并且导入路径是空目录。如果仍有问题,可以尝试重新导出导入。
Q2:如何迁移其他 WSL 发行版?
方法完全相同,只需将命令中的 Ubuntu 替换为对应的发行版名称即可(如 docker-desktop、Debian 等)。
Q3:能否迁移到其他磁盘?
可以,只需要修改目标路径即可。例如迁移到 E 盘:wsl --import Ubuntu E:\WSL\Ubuntu ...