Ubuntu根分区存储空间自动占满导致系统异常的解决方法求助
Ubuntu根分区存储空间自动占满导致系统异常的解决方法求助
兄弟我太懂你刚碰Linux就踩这种大坑的崩溃感了!150G的根分区几十分钟直接被塞满,系统直接黑屏变砖,换谁都得懵圈。别慌,咱们一步步来排查解决,先救系统再除根:
一、先找到“吃空间的元凶”(能进命令行就先做这个)
如果图形界面已经卡死黑屏,先按 Ctrl+Alt+F3(或者F2-F6任意一个)打开命令行终端,输入你的用户名和密码登录,然后执行这些命令:
- 先确认根分区确实被占满:
看输出里df -h/对应的Use%是不是100%。 - 定位哪个文件夹在疯狂吞空间:
这个命令会列出根目录下每个文件夹的总大小,找到数值最大的那个(比如sudo du -sh /*/var或/tmp),再深入排查:
比如发现/var异常大,就继续:
一层层缩小范围,直到揪出那个超大文件或文件夹。sudo du -sh /var/*
二、常见“空间小偷”的救急处理
1. 系统日志疯狂爆炸
这是最常见的原因!某个服务持续报错,会疯狂往/var/log写日志,几十分钟就能填满几百G:
- 先看
/var/log下哪个文件最大:ls -lh /var/log - 如果看到
syslog或kern.log几个G大,先临时清空救急(之后一定要找报错根源!):sudo truncate -s 0 /var/log/超大日志文件名 - 同时用
tail -f /var/log/syslog看日志是不是在刷重复错误,比如某个服务启动失败循环重试,找到服务名后临时停掉:sudo systemctl stop 出问题的服务名
2. 临时文件/缓存堆积
/tmp是临时文件存放地,程序崩溃或异常进程会留下大量垃圾,直接清理:
(放心,系统重启后sudo rm -rf /tmp/*/tmp会自动清空,不影响正常程序)- 清理APT软件包缓存(装软件留下的deb安装包,没用了):
sudo apt clean sudo apt autoremove --purge
3. 隐形“僵尸文件”
有些文件已被删除,但还被进程占用,磁盘空间不会释放,用这个命令找:
sudo lsof | grep deleted
输出里会显示进程号(PID),杀掉对应进程就能释放空间:
sudo kill -9 进程号
4. 疯狂读写的异常进程
装个工具看哪个进程在玩命写磁盘:
sudo apt install iotop sudo iotop
看IO列数值最高的进程,判断是bug程序还是恶意进程,要么停掉要么卸载。
三、解决后避免复发
- 揪出根本原因:比如是服务配置错误导致日志爆炸,就去修复配置;是软件bug,就更新或卸载它。
- 给新手的小建议:以后装系统可以把
/home单独分区,就算根分区炸了,个人文件也不会丢;定期用sudo apt clean做日常维护。
备注:内容来源于stack exchange,提问作者Abdul Hafiz Tamim
相关产品推荐
相关产品推荐

