今天,在解压一个非常大的存档后,我们的一台 Red Hat 服务器变得无响应。重新启动后,我们收到以下文件系统错误。
Inode 93464 is too big Unexpected Inconsistency Run fsck Manually
运行 fsck 会立即提示我们截断 Inode。
这引发了许多问题。比如,Inode 是如何变大的?如果你截断所说的 Inode 会发生什么。我假设您失去了对 Inode 引用的文件和/或目录的逻辑访问权限以及对其他链接 Inode 的任何其他引用。我们正在运行 Redhat Enterprise 4。
检查您的 e2fsprogs 版本(例如
e2fsck -V
)。在1.40.2 版本之前显然存在一个错误,可能导致 e2fsck(由 fsck 为 EXT2/EXT3 文件系统调用)错误地报告这种类型的文件系统损坏:我有权访问的 RHEL 4 服务器上安装了 1.35 版本,因此这可能是您的问题的真正原因。可能值得安装更新版本并再次运行 fsck 以确保。
如果这没有帮助,那可能确实是文件系统问题。根据这个线程,如果您的目录包含大量文件(数百万或更多),似乎会发生这种情况。如您所见,使用 fsck “修复”它会导致 inode 被截断。在目录 inode 的情况下,截断会导致目录“丢失”文件,而这些孤立文件最终会出现在文件系统的 lost+found 目录中。它们将以其 inode 编号命名,而不是它们的原始名称,因此尽管您仍然拥有这些文件,但可能很难将它们区分开来。