You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04系统/dev/sda2分区(含/var目录)持续占满空间的排查求助

Ubuntu 22.04系统/dev/sda2分区(含/var目录)持续占满空间的排查求助

看起来你的根分区(/dev/sda2)确实快被挤爆了,而且你已经试过清理日志、自动移除冗余包这些常规操作,接下来咱们一步步深挖到底是哪个目录或文件在悄悄占用空间:

  • 第一步:快速定位根目录下的大目录
    先执行这个命令,列出根目录下所有顶级目录的大小并按从大到小排序,能快速锁定最占空间的目标:

    sudo du -sh /* | sort -hr
    

    从你的情况看,大概率是/var目录占比最高,先确认它的大小。

  • 第二步:深入排查/var目录
    如果/var是大头,继续钻进去看子目录的大小:

    sudo du -sh /var/* | sort -hr
    

    通常这些子目录容易出问题:

    • /var/log:检查有没有异常增长的日志文件(比如某个服务不断输出错误日志),可以用tail -f实时查看可疑日志,确认后清理旧日志;
    • /var/cache:尤其是/var/cache/apt/archives,可以再执行sudo apt clean彻底清理下载的包缓存;
    • /var/lib:如果用了Docker、Podman这类容器工具,镜像和容器数据可能存在这里,用docker system df查看容器占用空间,清理无用镜像/容器;另外也可能是数据库文件(比如MySQL、PostgreSQL)占用过多;
    • /var/tmp:临时文件如果没自动清理,也可能堆积占用空间。
  • 第三步:排查单个超大文件
    有时候单个超大文件会直接占满分区,执行这个命令找出根目录下所有1G以上的文件:

    sudo find / -type f -size +1G -exec ls -lh {} \;
    

    看看有没有意外生成的超大备份、日志或者临时文件,确认无用后可以安全删除。

  • 第四步:检查Snap相关占用
    从你的lsblk输出看,/dev/sda2还挂载了Snap的相关目录,Snap的旧版本或者快照可能占用不少空间:

    • 查看所有Snap包的版本:snap list --all
    • 清理旧版本的Snap包:sudo snap remove --purge <snap包名>(替换成实际的包名,比如firefox的旧版本)
  • 第五步:检查挂载点残留文件
    有时候挂载其他分区后,原目录下的文件会被隐藏但仍占用空间,比如你现在把/home挂载到了sda4,可以临时把根分区绑定到/mnt,查看原/home目录的残留:

    sudo mount --bind / /mnt
    ls -lh /mnt/home
    

    如果有残留文件,确认无用后可以删除。

另外,你的/dev/sda2只有23G,对于现代Ubuntu系统来说确实偏小,如果频繁遇到空间问题,后续可以用GParted工具调整分区大小,从剩余空间充足的sda4划分一部分给sda2(操作前记得备份重要数据)。

备注:内容来源于stack exchange,提问作者Max

火山引擎 最新活动