You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

根文件系统空间占用统计不一致问题求助

根文件系统空间占用统计不一致问题求助

我遇到了一个奇怪的问题:我的根文件系统 /dev/mapper/rhel-root 总大小只有5GB,df -h 显示已经用了4.7G,剩余349M;但我用 find / -xdev 2>/dev/null -exec du -h --total {} + | sort -h | tail -n1 统计根目录下所有文件的总大小,结果却显示有8.6G。这中间的差异到底是怎么回事?我漏掉了什么?

我的命令输出如下:

[root@- ~]# df -h /
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root  5.0G  4.7G  349M  94%
[root@- ~]# find / -xdev 2>/dev/null -exec du -h --total {} + | sort -h | tail -n1
8.6G    total

系统信息:

  • OS: Red Hat Enterprise Linux release 8.9 (Ootpa)

我之前也碰到过类似的空间统计不一致的情况,大概率是下面这几个原因导致的,你可以逐一排查试试:

  • 被删除但仍被进程占用的文件:Linux里有个特性,要是一个文件被删除了,但还有进程在打开它,df 会继续把它算进已用空间里,但 du 不会统计(因为文件已经不在目录结构里了)。你可以跑 lsof | grep deleted 找出这类文件,找到对应的进程后,重启进程就能释放这些被占用的空间。
  • 隐藏的挂载点:比如某个非空目录(比如 /tmp 或者 /mnt)原本有文件,后来你把另一个分区挂载到这个目录上,原来的文件就被隐藏起来了。因为你用了 -xdev 参数,du 只会统计当前根文件系统的内容,不会去统计被挂载点覆盖的文件,但这些文件其实还是占用着根分区的空间。你可以临时卸载可疑的挂载点(比如 umount /mnt),看看里面有没有被隐藏的文件,或者用 mount 命令查看所有挂载点,排查有没有这类情况。
  • LVM快照占用空间:你的根分区是LVM逻辑卷,要是之前创建过快照卷,快照会占用逻辑卷的空间,df 会把这部分算进去,但 du 统计不到。你可以用 lvdisplay 命令查看有没有对应的快照卷,要是有的话,确认是否还需要,不需要的话可以删除快照释放空间。
  • 文件系统预留空间:ext系列文件系统默认会给root用户预留5%的空间,防止磁盘满了后root无法操作。不过这个一般不会造成这么大的差异,但你也可以用 tune2fs -l /dev/mapper/rhel-root | grep Reserved 查看预留的大小,确认是否是这个因素。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 09:23:09