1. 为什么需要压缩WSL2虚拟硬盘
WSL2作为Windows Subsystem for Linux的第二代架构,采用完整的虚拟机方案,其磁盘空间管理方式与传统的WSL1有本质区别。当你在Windows 10/11上启用WSL2时,系统会自动创建一个ext4格式的虚拟硬盘文件(通常位于%USERPROFILE%\AppData\Local\Packages\<Distro>\LocalState\ext4.vhdx),这个VHDX文件会随着使用不断膨胀,但不会自动收缩。
我曾在开发过程中遇到一个典型场景:一个初始占用5GB的Ubuntu镜像,经过三个月的日常使用(包括npm包安装、Docker镜像构建等操作),VHDX文件膨胀到87GB,而实际使用的空间只有32GB。这种"只增不减"的特性会导致宝贵的SSD空间被白白浪费,特别是对于512GB及以下容量的笔记本用户来说,这个问题尤为突出。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 手动压缩VHDX前的必要准备
2.1 检查当前磁盘使用情况
首先在WSL2终端执行:
bash复制df -h /
记录已用空间(Used)和可用空间(Avail)数值。这是判断可压缩空间的基础依据。
然后通过Windows PowerShell查看VHDX实际大小:
powershell复制Get-ChildItem "$env:USERPROFILE\AppData\Local\Packages\*" -Recurse -Filter "*.vhdx" | Select-Object FullName, @{Name="SizeGB";Expression={[math]::Round($_.Length/1GB,2)}}
2.2 清理无用文件
在WSL2内执行以下清理命令:
bash复制# 清理apt缓存
sudo apt clean
# 删除旧版本内核
sudo apt autoremove --purge
# 查找大文件(按需删除)
sudo find / -type f -size +100M -exec ls -lh {} \;
重要提示:如果使用Docker Desktop with WSL2,还需要执行
docker system prune清理无用的容器、镜
