×

别让 WSL 吃光 C 盘!Ubuntu .wsl 文件一键装到 D 盘 + 已安装迁移全攻略

独孤求败 独孤求败 发表于2026-06-01 11:41:49 浏览4 评论0

抢沙发发表评论

WSL2 的 Linux 文件系统存储在一个 ext4.vhdx 虚拟硬盘 文件中。这个文件有一个致命特性:

只增不减 —— 你在 WSL 里装软件、下镜像、编译代码,vhdx 会自动扩容;但删文件后,Windows 端的 vhdx 体积不会自动缩小。

这意味着:

操作
vhdx 变化
安装 Docker 镜像(5GB)
+5GB ✅
删除 Docker 镜像(5GB)
0GB
 ❌ 不会缩小
编译 Linux 内核(10GB)
+10GB ✅
清理编译产物
0GB
 ❌ 不会缩小

默认安装路径在 C 盘深处:

C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu...\LocalState\ext4.vhdx

如果你的 C 盘只有 128GB,WSL 吃掉 30-50GB 是家常便饭。

方案一:用 Ubuntu 官方 .wsl 文件直接装到 D 盘 ⭐推荐

Ubuntu 官方提供了 .wsl 后缀 的专用安装镜像,配合 WSL 2.4+ 的 --install --from-file 命令,可以直接指定安装目录。

1. 检查 WSL 版本

wsl --version

需要 WSL ≥ 2.7.1(支持 --location 和 --from-file 参数)。版本过低请更新:

wsl --update

2. 下载 Ubuntu .wsl 文件

Ubuntu 官方镜像站提供 .wsl 格式的专用文件:

版本
下载地址
Ubuntu 26.04 LTS
(推荐)
https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl
Ubuntu 24.04 LTS
https://releases.ubuntu.com/24.04/ubuntu-24.04-wsl-amd64.wsl
Daily 构建版
https://cdimage.ubuntu.com/ubuntu-wsl/daily-live/current/

💡 国内用户可用阿里云镜像加速:
https://mirrors.aliyun.com/ubuntu-cdimage/ubuntu-wsl/

下载命令(PowerShell):

# 创建下载目录
mkdir D:\WSL\images -Force

# 下载 Ubuntu 26.04 LTS .wsl 文件(约400MB)

curl.exe -L -o D:\WSL\images\ubuntu-26.04-wsl-amd64.wsl `
  https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl

3. 一键安装到 D 盘

# 安装到 D 盘指定目录
wsl --install --from-file D:\WSL\images\ubuntu-26.04-wsl-amd64.wsl --location D:\WSL\Ubuntu-26.04

安装完成后,vhdx 文件直接生成在 D:\WSL\Ubuntu-26.04\ 下,不占 C 盘 1 字节

4. 首次配置

# 启动
wsl -d Ubuntu-26.04

# 首次进入会提示创建用户名和密码

# 如果没有提示,手动创建:

adduser myuser
usermod -aG sudo myuser

# 设置为默认用户

cat
 > /etc/wsl.conf <<'EOF'
[user]
default=myuser

[boot]
systemd=true
EOF

# 退出重启

exit

wsl -t Ubuntu-26.04
wsl -d Ubuntu-26.04

5. 设置为默认发行版

wsl --set-default Ubuntu-26.04

方案二:在线安装时指定 D 盘

如果你不想手动下载 .wsl 文件,WSL 也支持在线安装时直接指定目录:

# 在线安装 Ubuntu 到 D 盘
wsl --install -d Ubuntu --location D:\WSL\Ubuntu

⚠️ 注意:此方式从 Microsoft Store 下载,速度可能较慢,且版本可能不是最新 LTS。


方案三:已装在 C 盘?3步搬家到 D 盘 ⭐重点

如果你已经把 WSL 装在了 C 盘,不用卸载重装,导出→注销→导入 三步即可搬迁。

第1步:导出备份

# 先关闭所有 WSL
wsl --shutdown

# 查看当前发行版名称

wsl -l -v

# 导出为 tar 文件(路径自己改)

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

💡 导出时间取决于你的 WSL 大小,10-30 分钟不等。期间 不要操作 WSL

第2步:注销 C 盘旧版

# 确认导出文件存在且大小合理后,执行注销
wsl --unregister Ubuntu

⚠️ 此操作会删除 C 盘上的 ext4.vhdx,释放 C 盘空间。请确保上一步导出成功!

第3步:导入到 D 盘

# 创建目标目录
mkdir D:\WSL\Ubuntu -Force

# 导入到 D 盘

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

导入完成后,检查 vhdx 位置:

# 确认 vhdx 在 D 盘
dir
 D:\WSL\Ubuntu\ext4.vhdx

⚠️ 迁移后必须恢复默认用户

导入后 WSL 默认以 root 登录,需要恢复普通用户:

方法一:命令行设置

Ubuntu config --default-user 你的用户名

方法二:修改 wsl.conf

# 进入 WSL
wsl -d Ubuntu

# 编辑配置

sudo
 nano /etc/wsl.conf

# 添加以下内容

[user]
default=你的用户名

方法三:注册表(以上都不生效时)

  1. 1. 打开 regedit
  2. 2. 定位到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
  3. 3. 找到对应发行版的 DefaultUid,改为 1000(即第一个普通用户的 UID)

迁移完成后清理

# 删除备份文件(释放空间)
del
 D:\WSL\ubuntu-backup.tar

# 验证一切正常

wsl -l -v

附加技能:vhdx 瘦身,回收已删除文件的空间

即使迁移到 D 盘,vhdx 仍会"只增不减"。定期瘦身可以回收空间:

方法一:diskpart(最通用)

# 关闭 WSL
wsl --shutdown

# 打开 diskpart

diskpart

# 在 diskpart 中执行(路径替换为你的 vhdx 实际路径)

select
 vdisk file="D:\WSL\Ubuntu\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

💡 瘦身效果:从 30GB 压缩到 12GB 很常见,取决于你在 WSL 中删除了多少文件。

方法二:WSL 内置命令(新版 WSL 支持)

wsl --shutdown
wsl --manage Ubuntu --compact

方法三:Hyper-V 管理器(可视化)

  1. 1. Win+S 搜索 "Hyper-V 管理器"
  2. 2. 右侧操作面板 → "编辑磁盘"
  3. 3. 选择 vhdx 文件 → 选择"压缩"

完整速查卡

新安装到 D 盘(.wsl 文件方式)

# 1. 下载 .wsl 文件
curl.exe -L -o D:\WSL\ubuntu-26.04.wsl https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl

# 2. 安装到 D 盘

wsl --install --from-file D:\WSL\ubuntu-26.04.wsl --location D:\WSL\Ubuntu-26.04

# 3. 设为默认

wsl --set-default Ubuntu-26.04

C 盘迁移到 D 盘

# 1. 导出
wsl --shutdown
wsl --export Ubuntu D:\WSL\ubuntu-backup.tar

# 2. 注销(释放C盘空间)

wsl --unregister Ubuntu

# 3. 导入到 D 盘

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

# 4. 恢复默认用户

Ubuntu config --default-user 你的用户名

vhdx 瘦身

wsl --shutdown
diskpart
# select vdisk file="D:\WSL\Ubuntu\ext4.vhdx"

# attach vdisk readonly

# compact vdisk

# detach vdisk

# exit

常见问题

Q:迁移后 Docker 还能用吗?

能用Docker Desktop 的 WSL 集成是独立的发行版(docker-desktop 和 docker-desktop-data),如果你也用了 Docker,建议把这两个也迁到 D 盘:

wsl --export docker-desktop-data D:\WSL\docker-desktop-data-backup.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:\WSL\docker-desktop-data D:\WSL\docker-desktop-data-backup.tar --version 2

Q:迁移后 Windows Terminal 的配置还在吗?

。Terminal 的配置存储在 Windows 的 settings.json 中,不受 WSL 迁移影响。如果图标或名称变了,检查 Terminal 配置中的 guid 是否对应。

Q:.wsl 文件和 .appx 有什么区别?

格式
安装方式
指定目录
适用场景
.wslwsl --install --from-file
✅ 支持 --location
推荐
,直接装到任意盘
.appx
双击安装或 Store
❌ 只能装 C 盘
旧方式,需后续迁移
在线安装
wsl --install -d Ubuntu
✅ 支持 --location
需联网,版本可能滞后

Q:装到 D 盘会不会变慢?

几乎不会。WSL2 的 IO 性能主要取决于磁盘类型(SSD vs HDD),而不是盘符。只要 D 盘是 SSD,性能与 C 盘无异。如果 D 盘是机械硬盘,IO 性能确实会下降


群贤毕至

访客