我有使用 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
大量随机数据。