一、先清理 Windows 侧崩溃转储(崩溃后暴涨最常见元凶)
WSL 进程崩溃会在 Windows 临时目录生成几 GB~ 几十 GB core dump 崩溃文件,路径:%LOCALAPPDATA%\Temp\wsl-crashes
一键清空(管理员 PowerShell)
# 删除所有崩溃dump文件
Get-ChildItem "$env:TEMP\wsl-crashes" -File -Force | Remove-Item -Force
# 清空回收站
Clear-RecycleBin -Force
永久关闭崩溃转储,避免再次爆满
在 Windows 用户目录新建 / 编辑
.wslconfig路径:C:\Users\你的用户名\.wslconfig写入:
[wsl2]
maxCrashDumpCount=-1
重启 WSL 生效
wsl --shutdown
二、进入 Ubuntu 内部清理垃圾(核心步骤)
1. 定位超大文件(找出崩溃遗留 core、日志、缓存)
# 安装磁盘扫描工具ncdu
sudo apt update && sudo apt install ncdu -y
# 全盘扫描,直观看到占用最大文件夹
sudo ncdu /
重点排查目录:
/var/log崩溃堆积日志/tmp、/var/tmp崩溃临时文件家目录下
core.*进程崩溃内存转储~/.cache各类程序缓存
2. 系统安全清理命令(无风险)
# 1. 清理apt安装包缓存
sudo apt clean
sudo apt autoremove -y
# 2. 裁剪系统日志(崩溃会疯狂写日志)
journalctl --disk-usage # 查看日志占用
sudo journalctl --vacuum-time=7d # 只保留7天日志
sudo journalctl --vacuum-size=100M # 限制日志最大100M
sudo rm -rf /var/log/*.gz /var/log/*.old
# 3. 清空临时目录(崩溃残留临时文件)
sudo rm -rf /tmp/* /var/tmp/*
# 4. 清理用户缓存
rm -rf ~/.cache/*
# 5. 清理Docker(如有安装)镜像/容器/卷
docker system prune -a --volumes --force
# 6. 标记空闲块,给压缩工具识别空间(关键)
sudo fstrim -av
3. 手动删除崩溃 core 文件(ncdu 查到后执行)
# 全盘查找所有core转储文件并删除
sudo find / -name "core.*" -delete
三、Windows 侧压缩虚拟磁盘 ext4.vhdx(必做!)
WSL2 虚拟磁盘是动态扩展,只会变大不会自动缩小,Linux 内删完文件,C 盘空间不会释放,必须压缩 vhdx 文件CSDN博...
步骤 1:彻底关闭 WSL(管理员 PowerShell)
wsl --shutdown
# 确认无运行实例
wsl --list --running
步骤 2:找到 Ubuntu 虚拟磁盘路径
# 打开存放目录
explorer.exe $env:LOCALAPPDATA\Packages
目录名类似:CanonicalGroupLimited.Ubuntu24.04LTS_xxxx → LocalState\ext4.vhdx
步骤 3:两种压缩方式(任选其一)
方式 A:Optimize-VHD(推荐,简单)
# 替换为你自己的vhdx完整路径
Optimize-VHD -Path "C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx" -Mode Full
方式 B:diskpart 原生工具
diskpart
# 粘贴你的vhdx路径
select vdisk file="C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
四、预防再次崩溃爆盘优化
已配置
.wslconfig关闭崩溃 dump限制 core 文件大小(Ubuntu 内执行)
echo "* soft core 0" | sudo tee /etc/security/limits.d/core-limit.conf
定期自动裁剪日志,可写入定时任务
若 C 盘空间紧张,迁移 WSL 虚拟磁盘到 D/E 盘:
# 导出备份
wsl --export Ubuntu D:\wsl_backup.tar
# 注销原实例
wsl --unregister Ubuntu
# 导入到D盘
wsl --import Ubuntu D:\WSL_Ubuntu D:\wsl_backup.tar --version 2
排查顺序总结
Windows 删
wsl-crashes崩溃 dump(最快释放大量空间)Ubuntu 内清理日志、缓存、core 转储、临时文件
sudo fstrim -av标记空闲空间wsl --shutdown后压缩 ext4.vhdx配置关闭崩溃转储,杜绝复发
原文链接
欢迎访问 小易撩挨踢