“设备上没有剩余空间”,df 显示差异

“设备上没有剩余空间”,df 显示差异

几个小时前我的根分区已满,我将文件从中移出,然后 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

答案1

大多数文件系统都会为 root 保留一定比例的空间,因此您仍然可以以 root 身份登录并解决磁盘空间不足的问题。通常这个比例是 5%。9GB 大约是 183GB 的 5%,所以这是合理的。您可以使用 tune2fs 查看保留了多少空间:

# tune2fs -l /dev/sda1 | grep -i reserved
Reserved block count:     936488
Reserved GDT blocks:      1019
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

您可以使用它来修改它

# tune2fs -m 3 /dev/sda1
tune2fs 1.41.9 (22-Aug-2009)
Setting reserved blocks percentage to 3% (561893 blocks)

在现代大型硬盘上,5% 可能有点多,您可能希望将其设置得更低。您不想将其设置为零。

答案2

我和 bob 一样,尝试 df -i,例如,如果你有一堆输出不良的 crontab,你的 /var/spool/clientmqueue/ 目录可能会被填满

答案3

还要查看 INODES。在“原始”安装中,如果您有许多小文件,它们会占用 inode,但不会占用空间。您会发现有可用空间,但由于 inode 已满,您将无法使用这些空间。

答案4

另一件要检查的事情是查看文件系统上是否有任何打开的文件(尤其是日志)。删除文件不会清除磁盘上的空间,直到文件实际关闭为止。

相关内容