万卷书   首页 > 电脑书籍 > Linux >fsck-Linux文件系统检查工具介绍
 
3.5. 文件节点链接

  每一个文件节点都包含有对于目录项的总链接数。Fsck为了校核一个文件节点的链接数,它从根目录开始扫描,并且依次递减目录项中的链接数,最后比较所得链接数和文件节点包含的链接数是否一致,如果不一致则fsck会将实际的链接数保存到文件节点中。如果发现链接数为零,则说明此目录项是被丢弃了的,于是fsck会将此目录项存储到lost+found目录项中。每一个文件节点都保存有一个列表或是指向该列表的指针,此列表包含了此节点所使用的数据块。由于间接数据块是被文件节点所拥有的,所以如果它被破坏也直接地影响到文件节点。Fsck检查一个文件节点所拥有数据块是否存在于"已分配数据块"列表中,如果不是,则查看它是否存在于"重复块(duplicate blocks)"列表中,如果都不是,则将这个数据块的块号加入到"已分配数据块"列表中。另外由于没有足够的信息来表明文件节点所指向的数据块内容的正确性,所以如果文件内容被改变则无法被探测到。如果遇到硬件故障使得数据块内容改变,此时fsck同时清除数据块和文件节点。Fsck检查一个文件节点包含的所有数据块号对应的数据块,如果这个数据块号小于文件系统中最小的数据块号或者大于最大的数据块号则将它置为坏块。坏块通常是由硬件故障引起的,如果一个文件节点包含有坏块号,则fsck将会清除此节点。

3.6. 文件结点数据大小

  每个文件节点都有它所包含数据块的总数,这个总是是已分配数据块数目和间接数据块数目的总和。Fsck就比较它计算所得到的数据块总数和文件节点中的数据块总数,看两者是否一致,如果不一致,那么fsck将修复它。另外,每一个文件节点都包含有一个32位的长度字段,它表示了文件大小的字节描述。

3.7. 检查与文件节点相关联的数据

  一个文件节点可以和三种形式的数据块相关联。它们是:无格式数据块(Plain data blocks)、符号链接数据块(symbolic link data blocks)和目录数据块(directory data blocks)。

  其中,无格式数据块包含了文件的内容;符号链接数据块包含了所指向文件的路径;而目录数据块包含了目录的结构信息。
Fsck只能检查目录数据块的有效性,它检查一系列的目录错误,它们包括目录节点号所指向的未分配文件节点、目录节点号是否大于文件系统中所允许的最大目录节点号、关于目录项"."及".."的节点号是否有错和一个目录数据块是否附在文件系统之上等错误。如果一个目录节点的类型是"未分配节点"时,fsck将会删除整个目录节点和它所包含的目录数据块,这通常是由硬件故障引起的。当一个非法数据写入目录数据块时,会引起目录节点跑到文件系统节点列表之外,这种情况,fsck将删除这个目录节点。另外,对于目录项"."的数据块号必须时目录节点数据块列表中的第一项,因为它相当于这个目录节点,如果不是这样,fsck会修正它并使它成为此目录节点数据块列表中的第一数据块。

3.8. 文件系统的连通性

  Fsck检查文件系统的连通性,检查目录项是否都被链入文件系统,如果不是则将它们存入lost+found目录中,这种情况通常发生于硬件故障。

上一页