超级块存储摘要信息,它是 UFS 文件系统中最常损坏的组件。对文件系统 inode 或数据块进行的每个更改也会修改超级块。如果 CPU 暂停工作且最后一个命令不是 sync 命令,则几乎可以肯定超级块会被损坏。
将根据以下内容检查超级块是否存在不一致性问题:
文件系统大小
inode 数
空闲块计数
空闲 inode 计数
文件系统大小必须大于超级块和 inode 列表所用的块数。inode 数必须小于文件系统所允许的最大数。一个 inode 表示一个文件的所有信息。对于 fsck 命令,文件系统大小和布局信息是最关键的信息。无法实际检查这些大小,因为它们是在创建文件系统时静态确定的。但是,fsck 命令可以检查这些大小是否在合理的范围内。所有其他文件系统检查都要求这些大小正确。如果 fsck 命令检测到主超级块的静态参数已损坏,则会要求操作员指定备用超级块的位置。
有关 UFS 文件系统结构的更多信息,请参见UFS 文件系统的柱面组结构。
空闲块存储在柱面组块图中。fsck 命令检查标记为空闲的所有块是否未被任何文件请求。将所有块统计在内后,fsck 命令将检查空闲块数与 inode 所请求的块数之和是否等于文件系统中的总块数。如果块图出现任何错误,则 fsck 命令将重新构建它们,不考虑已分配的块。
超级块中的摘要信息包括文件系统中空闲块总数的计数。fsck 命令将此计数与它在文件系统中找到的空闲块数进行比较。如果这两个计数不一致,则 fsck 命令会将超级块中的计数替换为实际的空闲块计数。
超级块中的摘要信息包含文件系统中空闲 inode 的计数。fsck 命令将此计数与它在文件系统中找到的空闲 inode 数进行比较。如果这两个计数不一致,则 fsck 命令会将超级块中的计数替换为实际的空闲 inode 计数。