Inode太大了。 Linux文件系统

今天解压缩一个非常大的档案后,我们的一台红帽服务器变得没有反应。 重新启动后,我们收到以下文件系统错误。

Inode 93464太大意外不一致运行fsck手动

立即运行fsck提示我们截断Inode。

这已经产生了一些问题。 喜欢,和Inode怎么变大? 如果你截断所说的Inode会发生什么。 我假设你失去对Inode引用的文件和/或目录的逻辑访问,以及对其他链接的Inode的任何其他引用。 我们正在运行Redhat Enterprise 4。

检查是您的e2fsprogs版本(例如e2fsck -V )。 显然有一个版本1.40.2之前的错误,可能会导致e2fsck(由EXC2 / EXT3文件系统的fsck调用)错误地报告这种types的文件系统损坏:

修复e2fsck中的一个错误,当最后一个条目的rec_len太大时,导致错误地使目录显示。 这导致无意中报告文件系统损坏,并且需要第二次运行e2fsck来完全修复该目录。

我有权访问的RHEL 4服务器版本为1.35,所以这可能是您的问题的真正原因。 可能值得安装一个更新的版本,并再次运行fsck以确保。

如果这没有帮助,这可能确实是一个文件系统问题。 根据这个线程 ,看起来如果你有一个包含大量文件(数百万或更多)的目录,就会发生这种情况。 正如你看到的,用fsck“修复”它将导致inode被截断。 对于目录inode,截断将导致目录“丢失”文件,而这些孤立的文件将最终在文件系统的lost + found目录中。 它们将以它们的inode编号命名,而不是它们的原始名称,所以虽然你仍然有这些文件,但是可能很难区分它们。