目录 · 7 节

如何调整 WSL2 虚拟磁盘大小

#WSL#Windows#磁盘2 分钟阅读

ext4.vhdx 是动态扩展盘,只增不减:删文件、清 Docker、清缓存,文件都不会变小。新装发行版默认上限 1 TB (1048576 MB),迟早长满。本文实测:文件 230.6 GB,实际只用 55 GB。

做法:备份 → 改默认 VHD 大小 → 注销 → 重新导入,数据原样保留。下面以缩小到 100 GB 为例。

开始前

  • Windows 11 + WSL2,管理员权限 PowerShell(开始菜单搜 PowerShell → 右键 → 以管理员身份运行)
  • 磁盘剩余 ≥ 60 GB(放备份),全程约 20 分钟(导出 7 分钟、导入 5 分钟,都在等)

确认现状

wsl.exe --system -d <发行版名> df -h /mnt/wslg/distro
dir "$env:LOCALAPPDATA\Packages" -Filter ext4.vhdx -Recurse

第一条是官方最新的磁盘检查命令(从系统发行版看目标发行版的虚拟盘)。若无效,先升级 WSL:

wsl.exe --update

或用备用命令(在默认发行版里查看):

wsl df -h /

<发行版名> 换成你自己的。vhdx 一般在 %LOCALAPPDATA%\Packages 下,自己移动过就在自定义目录,如 D:\Application\WSL\ext4.vhdx。文件远大于已用空间才值得做,差不多的话这篇帮不上你,你的盘没膨胀。

1. 备份

wsl --shutdown
wsl --export <发行版名> D:\backup.tar

导出后确认文件大小合理(应接近已用空间,本文 56 GB)。备份是安全网。

2. 改默认 VHD 大小

设置 → 应用 → WSL (或搜 “WSL Settings”),把默认 VHD 大小从 1048576 改成 102400 MB(100 GB),保存。只影响新创建的发行版,不用重启。

3. 注销

wsl --unregister <发行版名>

会删掉当前磁盘文件,确认备份已完成再做。看到“操作成功完成”即可。

4. 重新导入

wsl --import <发行版名> <安装目录> D:\backup.tar

<安装目录> 放新 vhdx,如 D:\Application\WSL。导入约 5 分钟,完成后虚拟盘按 100 GB 建立,数据原样在里面。

验证

wsl.exe --system -d <发行版名> df -h /mnt/wslg/distro

Size 应约 98 GB(100 GB 虚拟盘去掉文件系统开销),文件大小和之前一致就成功了:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdd         98G   57G   37G  61% /mnt/wslg/distro

再确认系统正常:

wsl.exe --distribution <发行版名> locale -a

应能看到你的语言,如 zh_CN.utf8