Linux内核崩溃转储文件(如vmlinux、vmcore等)体积庞大,清理可释放数GB空间;需先定位路径(WSL2在wsl-crashes、kdump在/var/crash、systemd-coredump在/var/lib/systemd/coredump),再安全删除并禁用相关服务防止复发。

Linux 系统中产生的内核崩溃转储文件(如 vmlinux、vmcore、crash 日志或 wsl-crashes 目录下的 dump 文件)通常体积巨大,尤其在频繁崩溃或调试场景下会迅速占满磁盘。这类文件并非日常运行必需,清理它们能快速释放数 GB 甚至数十 GB 空间。
确认崩溃转储文件位置
不同环境存放路径不同,需先定位:
-
WSL2 环境:Windows 主机侧路径为
C:Users\AppDataLocalTempwsl-crashes;Linux 侧可通过/mnt/c/Users//AppData/Local/Temp/wsl-crashes/访问 -
传统 Linux(kdump):默认存于
/var/crash/或/var/log/kdump/,具体由/etc/kdump.conf中的path指定 -
systemd-coredump:用户态程序崩溃生成的 core 文件,默认路径为
/var/lib/systemd/coredump/
安全删除已有转储文件
确认路径后,可直接清理,无需停服务(但建议避免正在写入时操作):
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- WSL2 崩溃日志:
rm -rf /mnt/c/Users/$USER/AppData/Local/Temp/wsl-crashes/* - kdump 转储:
sudo rm -rf /var/crash/*(若使用 kdump) - systemd core 文件:
sudo systemd-coredumpctl --all --since=today clean或直接清空目录:sudo rm -f /var/lib/systemd/coredump/core.*
永久禁用或限制新转储生成
防止问题复发,需从源头控制:
-
WSL2 关闭崩溃转储:在 Windows 用户目录下创建或编辑
%USERPROFILE%wsl.conf,添加:[wsl2]<br>kernelCommandLine = "systemd.unified_cgroup_hierarchy=1 loglevel=3 crashkernel=0"
然后重启 WSL:wsl --shutdown && wsl -
禁用 systemd-coredump:
sudo systemctl stop systemd-coredump.socket,再执行sudo systemctl disable systemd-coredump.socket -
关闭 kdump(如非调试必需):
sudo systemctl stop kdump,sudo systemctl disable kdump,并注释或删除/etc/default/kdump中的启用配置
验证与后续维护
清理后建议检查空间释放效果,并设置定期清理习惯:
- 查看释放量:
df -h /或du -sh /var/crash /var/lib/systemd/coredump - 添加定时任务(如每周清理旧 core):
sudo crontab -e,加入一行:0 2 * * 0 find /var/lib/systemd/coredump -name "core.*" -mtime +7 -delete - 对 WSL 用户,可在 Windows 任务计划程序中设置脚本自动清理
wsl-crashes目录










