系统管理指南:设备和文件系统

超级块检查

超级块存储摘要信息,它是 UFS 文件系统中最常损坏的组件。对文件系统 inode 或数据块进行的每个更改也会修改超级块。如果 CPU 暂停工作且最后一个命令不是 sync 命令,则几乎可以肯定超级块会被损坏。

将根据以下内容检查超级块是否存在不一致性问题:

文件系统大小和 Inode 列表大小检查

文件系统大小必须大于超级块和 inode 列表所用的块数。inode 数必须小于文件系统所允许的最大数。一个 inode 表示一个文件的所有信息。对于 fsck 命令,文件系统大小和布局信息是最关键的信息。无法实际检查这些大小,因为它们是在创建文件系统时静态确定的。但是,fsck 命令可以检查这些大小是否在合理的范围内。所有其他文件系统检查都要求这些大小正确。如果 fsck 命令检测到主超级块的静态参数已损坏,则会要求操作员指定备用超级块的位置。

有关 UFS 文件系统结构的更多信息,请参见UFS 文件系统的柱面组结构

空闲块检查

空闲块存储在柱面组块图中。fsck 命令检查标记为空闲的所有块是否未被任何文件请求。将所有块统计在内后,fsck 命令将检查空闲块数与 inode 所请求的块数之和是否等于文件系统中的总块数。如果块图出现任何错误,则 fsck 命令将重新构建它们,不考虑已分配的块。

超级块中的摘要信息包括文件系统中空闲块总数的计数。fsck 命令将此计数与它在文件系统中找到的空闲块数进行比较。如果这两个计数不一致,则 fsck 命令会将超级块中的计数替换为实际的空闲块计数。

空闲 Inode 检查

超级块中的摘要信息包含文件系统中空闲 inode 的计数。fsck 命令将此计数与它在文件系统中找到的空闲 inode 数进行比较。如果这两个计数不一致,则 fsck 命令会将超级块中的计数替换为实际的空闲 inode 计数。