ext4:目录占用 250GB 而不是 20GB?

ext4:目录占用 250GB 而不是 20GB?

我有使用 ext4 的 gentoo linux x64 内核 2.6.32-gentoo-r1

我有一个 260GB 的驱动器,看来 99% 已被占用。

(ufk 是我的主目录)

du -hl --max-depth=1 ufk

输出显示了很多目录及其大小,最后:

231G    ufk

我把它显示的所有目录的大小加起来,但不超过 20GB

df -i ufk

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/root            18317312  759944 17557368    5% /

du -hsl ufk  

231G    ufk

你知道是什么原因造成的

答案1

-i”返回的是 inode 编号(“文件目录”中的“条目”数量),而不是块大小(文件使用的空间)。

“df” 的标题证实了这一点:Inodes IUsed IFree IUse% 请注意每个数字前面的“I”。

删除“ -i”,它应该会给出正确的数字。使用“ -hk”表示人性化的数字和以千字节表示的块大小。

答案2

好的,这个问题古老,但另一方面,我缺少死灵法师徽章... :-)

我曾多次遇到这种幻影磁盘使用情况。几乎每次都是因为某个进程仍在使用某个已删除的大型文件(或打开该文件句柄)。如果某个进程仍在处理某个文件(如大型日志文件),则该文件将不会真正被删除,直到该进程将其释放。

你可以使用以下命令来识别此类文件,lsof -n | grep -i deleted然后重新启动有问题的进程(或者大多数情况下,只需使用以下命令向其发送 HUP 信号即可):killall -HUP someprocessname

答案3

我认为这是一个与 ext4 相关的错误。我通过将 /home/ufk/* 的所有内容复制到不同的分区,删除并重新创建 /home/ufk 目录并将所有文件复制回来解决了该问题。

答案4

可能ufk安装在包含 250gb 数据的目录中。实际上,df显示每个安装点的文件系统使用情况。

例子:

mkdir tmp
dd if=/dev/urandom of=tmp/file bs=512 count=4096
mount /dev/sda5 tmp

现在tmp不应该包含任何内容(假设sda5是一个干净的分区等),但是目录该支架包含file大量随机数据。

相关内容