root 完整 Linux。没有空闲块

root 完整 Linux。没有空闲块

df -h报告“/”分区已满 100%。du -hs *在此分区的每个目录上运行均显示仍有大量空间。

tune2efs报告只有一个块可用。fsck同时运行,还显示所有块均已使用。

'/' 分区上的 ionode 使用率为 14%。

请注意,/var、/usr、/dev、/tmp、/home 安装在不同的分区上,并且其中有可用空间。

您能否告诉我导致所有块都被占用并且磁盘报告已满的可能原因,尽管空间很大。

答案1

除了打开文件问题(通常会导致可用空间不可用)之外,一个并不少见的问题是文件被挂载点屏蔽。例如,如果您有/tmp一个单独的逻辑卷,但/tmp根文件系统中的目录中仍有文件,这些文件将占用空间,但会被挂载隐藏。

尝试在启动时进入单用户模式,这样就不会运行任何可能导致挂载打开的程序,卸载所有内容,并确保在通常用作挂载点的目录中没有隐藏的文件。

答案2

这通常是由于打开一个文件进行写入,但该文件已被删除,但写入该文件的进程尚未重新启动,因此放弃了该文件。您可以使用lsof查找已打开但未链接(已删除)的文件

lsof +L1

应该可以解决问题。正如手册页所述:

格式为 的规范+L1将选择已取消链接的打开文件。格式为 的规范+L1 <file_system>将选择指定文件系统上未链接的打开文件。

答案3

如果文件被删除,而另一个进程仍保持其打开状态,则该进程可以继续写入,最终会无形地填满磁盘。一旦保持文件打开状态的进程退出,这些块就会可用。

尝试评估每个正在运行的守护进程。如果可能,请重新启动它们。如果您无法弄清楚,重新启动机器应该可以解决问题。

答案4

相关内容