给 Windows WSL2 虚拟磁盘瘦身
2026-06-03#WSL
使用 Windows 一段时间后,尽管没有安装大型软件,但 C 盘剩余空间不足,已经显示为红色。最终怀疑是 WSL2 导致的,很可能是因为最近在多个项目中运行了 npm install,安装了大量的软件包。经过排查,确实如此:WSL2 的虚拟磁盘空间不断增长,但在 WSL2 里删除文件后,它并不会主动把磁盘空间归还给 Windows 系统。不过可以使用多种方法对 WSL2 的虚拟磁盘进行瘦身,比如使用 diskpart 压缩磁盘文件。
确认虚拟磁盘使用情况 🔗
在 WSL2 中查看磁盘使用情况:
df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sdd 251G 76G 163G 32% /
可以看到虚拟磁盘大小为 251G,但只使用了 32%,有大量空闲空间并未归还给宿主机。
压缩虚拟磁盘文件 🔗
找到虚拟磁盘文件,路径通常为 C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu...\LocalState\ext4.vhdx。复制文件路径。
以管理员身份打开 PowerShell,输入 diskpart 打开磁盘管理工具,然后使用 select vdisk 选择虚拟磁盘文件:
DISKPART> select vdisk file="<磁盘文件地址>"
DiskPart successfully selected the virtual disk file.
依次执行 attach vdisk readonly、compact vdisk 和 detach vdisk 来压缩虚拟磁盘:
DISKPART> attach vdisk readonly
100 percent completed
DiskPart successfully attached the virtual disk file.
DISKPART> compact vdisk
100 percent completed
DiskPart successfully compacted the virtual disk file.
DISKPART> detach vdisk
DiskPart successfully detached the virtual disk file.
DISKPART> exit
确认瘦身结果 🔗
再次打开"我的电脑",即可看到 C 盘剩余空间增加了许多。