易君召
易君召
发布于 2026-07-16 / 16 阅读
0
0

Windows系统下WSL Ubuntu 崩溃磁盘暴增完整清理方案

一、先清理 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

永久关闭崩溃转储,避免再次爆满

  1. 在 Windows 用户目录新建 / 编辑 .wslconfig 路径:C:\Users\你的用户名\.wslconfig 写入:

[wsl2]
maxCrashDumpCount=-1
  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_xxxxLocalState\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

四、预防再次崩溃爆盘优化

  1. 已配置 .wslconfig 关闭崩溃 dump

  2. 限制 core 文件大小(Ubuntu 内执行)

echo "* soft core 0" | sudo tee /etc/security/limits.d/core-limit.conf
  1. 定期自动裁剪日志,可写入定时任务

  2. 若 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

排查顺序总结

  1. Windows 删wsl-crashes崩溃 dump(最快释放大量空间)

  2. Ubuntu 内清理日志、缓存、core 转储、临时文件

  3. sudo fstrim -av 标记空闲空间

  4. wsl --shutdown 后压缩 ext4.vhdx

  5. 配置关闭崩溃转储,杜绝复发


原文链接 https://www.yijunzhao.cn/archives/wsl-ubuntu-disk-full-cleanup-guide-windows

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/


评论