几个小时前,我的根分区填满了,我将文件从它移开,df 报告:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 183G 174G 0 100% /
所以应该有 9GB 可用空间,但可用性报告为 0,使用率仍为 100%。
我以root身份进行了测试,例如
# echo test >a ; cat a
test
它按预期工作;但是作为普通用户,我仍然收到错误:
$ echo test >a ; cat a
bash: echo: write error: No space left on device
我进行正面测试的根主目录和我的主目录在同一个分区上。fstab 条目是:
/dev/hda1 / ext3 noatime,defaults,errors=remount-ro 0 1
大多数文件系统为 root 保留了一定比例,因此您仍然可以以 root 身份登录并解决磁盘空间不足的问题。通常这是 5%。9GB 大约是 183GB 的 5%,所以这是有道理的。您可以使用 tune2fs 查看保留了多少:
您可以使用修改它
在现代大型驱动器上,5% 可能有点过高,您可能希望将其设置得更低。您不想将其设置为零。
我和 bob 一起尝试 df -i,例如,如果你有一堆错误的输出 crontab,你的 /var/spool/clientmqueue/ 目录可能会被填满
也看看 INODES。在“vanilla”安装中,如果您有很多小文件,它们会消耗 inode,但不会消耗空间。您将看到您有可用空间,但由于您的 inode 已满,您将无法使用此空间。
“默认情况下,Unix 中的每个文件系统都为超级用户(root)保留了一些空间。这意味着没有普通的 Unix 用户可以将文件系统填充到 100%,因此它总是有足够的可用空间来继续正常功能。 "
从:http://www.unixtutorial.org/commands/tune2fs/
要检查的另一件事是查看该文件系统上是否有任何打开的文件(尤其是日志)。在文件实际关闭之前,删除文件不会清除磁盘上的空间。
我赌 1 美元,克莱德有答案。一个进程在该设备上打开了一个文件。在 linux 中,文件实际上并没有被删除,直到保持它打开的进程放开它。
我会开始:
lsof | grep hda1