df 报告 Ext4 分区的可用空间错误

Ale*_*lex 9 ext4 centos

我的系统是 CentOS 6 x86_64,根分区格式为 ext4。 df报告大约 3Gb 为已用空间:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md1              20158260   3433724  15700540  18% /
Run Code Online (Sandbox Code Playgroud)

du -sm -x /声称实际使用的 Gb 少于一个 Gb:

[root@xxxx ~]# du -sm -x /
948     /
Run Code Online (Sandbox Code Playgroud)

我想知道这里发生了什么。重新启动后使用数量立即更改。文件系统声称它是干净的,日志中没有错误。我发现了这个,但它没有解释问题的根源。我应该重新格式化分区吗?有没有办法追踪这种额外的使用情况?

我还执行了以下操作以检查du在非空挂载点上的挂载没有隐藏任何数据:

[root@xxxx ~]# mount -o bind / /mnt/root
[root@xxxx ~]# du -sm /mnt/root/
949     /mnt/root/
[root@xxxx ~]#
Run Code Online (Sandbox Code Playgroud)

不,这不是我的情况。

小智 11

我首先想到的是你已经删除了文件。使用lsof -n | grep deleted将帮助您。该命令的输出是否显示了一些文件?(也许你有一个巨大的日志文件仍在写入)。如果您有正在写入的进程(系统记录器或类似 Apache Web 服务器之类的东西)打开的文件,它们可能会使用大量磁盘空间,最简单的方法是重新启动拥有这些已删除文件的进程。

如果没有任何已删除的文件,您能否粘贴 running 的输出tune2fs -l

  • 哦 - 要记住的另一件事。我知道 ext3 会这样做,ext4 也可能会这样做。通常为 root 用户留下一小部分“保留”空间。这是在文件系统被用户数据填满的情况下 - 它仍然为 root 用户安全地运行命令、进入并修复问题留出空间。如果 *reserved* 空间已满,那么您就是 SOL 并且只需要删除一些东西 - 当您被 cd 到完整的文件系统时,很少有其他命令可以可靠地工作。我记得 'tune2fs -m' 设置百分比。没有直接关系,但有用的花絮。 (5认同)

use*_*746 5

在下次重新启动时强制进行文件系统检查。您可能有保存数据的未恢复的 inode。

# touch /forcefsck  # Run as root, then reboot.
Run Code Online (Sandbox Code Playgroud)

来源:http : //ubuntuforums.org/showthread.php?t=1360204&p=9209650#post9209650