• WAP手机版 加入收藏  设为首页
文件数据恢复资料

文件系统破坏了怎么修复

时间:2017-2-1 9:43:25   作者:成都数据恢复中心   来源:本站原创   阅读:1250   评论:0
内容摘要:有很多方式可以使文件系统遭到破坏,最通常的是不正常关机和一些硬件错误。原因是在关闭系统并且挂起CPU之前没有执行sync来将数据写入磁盘,导致文件系统不完整。另外,硬件错误也是很致命的,特别是磁盘的物理损伤,将导致数据永久性地丢失^fsck提供的功能将有助于减少系统破坏所造成的损失.修复损坏的文件系统。fsck的主要功...

 

有很多方式可以使文件系统遭到破坏,最通常的是不正常关机和一些硬件错误。原 因是在关闭系统并且挂起CPU之前没有执行sync来将数据写入磁盘,导致文件系统不完 整。另外,硬件错误也是很致命的,特别是磁盘的物理损伤,将导致数据永久性地丢失^ fsck提供的功能将有助于减少系统破坏所造成的损失.修复损坏的文件系统。fsck的主要 功能如K。

1.检测和修复被破坏的文件系统

文件系统破坏了怎么修复

平时,fsck不进行交互式执行,而是在非正常退出系统后,下次开机时自动执行。 这个功能是在fsck进行交互式执行时的一个子集。所以本节下面的介绍都是基于交互式 执行的,并且所有可能发生的错误都会被捕捉到。在此模式下运行,我们可以根据错误 的类型来采取相应的修复措施。对于一个静态的文件系统,fsck检查它的结构完整性。 在下面的介绍里,我们着重讨论发现柱面组群、i-节点、间接i-节点和数据块的错误和各 种可能采取的修复措施。

2.数据块检查

常见的文件系统破坏形式是概要信息中关于超级数据块的信息遭到破坏。概要信息 很容易被破坏,因为对文件系统的任何改变都会导致概要信息发生变化,并且也很容易 在非正常退出时被破坏。对超级数据块的检查主要是针对文件系统的长度、i-节点数目、 空闲数据块统计和空闲i-节点统计等。文件系统的长度必须大于被超级数据块使用的数据 块数目的总和和被i-节点列表所使用的数据块数目的总和。对fsck来说,文件系统的长 度和它的布局信息是最为重要的。

3. 空闲数据块检查

fsck检查所有在柱面组群的数据块映像中被标识为未使用的数据块,也即空闲数据 块。fsck合计空闲数据块的数目,并且把它加上被i-节点使用的数据块的数目.检查这个 结果是否等于文件系统中所有数据块的总和。当fsck发现数据块分配映像有错误时,就 自动重建它。概要信息中和超级数据块相联系的信息包含了在文件系统中所有空闲数据 块的数目。fsck将它检杳所得到的空闲数据块数tl和1:面概要信息中的空闲数据块数目 进行比较,如果两者不一致,fsck就用实际检查得到的空闲数据块覆盖概要信息中的空 闲数据块信息。对于空闲i-节点的检査也会做同样的处理。

     4.    i-节点状态检查

一个单独的i-节点一般不会出错,然而.由f在文件系统中有大量的i-节点处于活动 状态,所以会有一小部分i-节点可能会发生错误。fsck从第二个i-节点开始检查(i-节点 0被标记为“未使用”、i-节点1被留作后用)直至最后一个i-节点。每一个i-节点都要进 行格式、类型、链接数、重复数据块、坏数据块和节点大小的检杳。

每个i-节点都有一个模式定义,它指示了 i-节点的类型和分配状态.这些类型有常规 节点、目录节点、符号链接节点、特殊块设备节点、特殊字符设备节点和套接字节点; 而其分配状态有未分配、己分fid和非分配三种状态,其中非分配状态的节点指示了这个 节点具有不正确的节点格式,这种情况常常是由于非法数据的写入而造成的,对于这种 情况,fsck会清除此i-节点的内容。

     5.    i-节点链接

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


     6. i-节点数据大小

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

     7.检查与i-节点相关联的数据

一个i-节点可以和三种形式的数据块相关联,它们是无格式数据块(Plain Data Blocks)、符号链接数据块(Symbolic Link Data Blocks)和目录数据块(Directory Data Blocks)。其中,无格式数据块包含了文件的内容,符号链接数据块包含了所指向文件的 路径,而目录数据块包含了目录的结构信息。

fsck只能检査目录数据块的有效性,它检查一系列的目录错误,包括目录节点号所 指向的未分配i-节点、目录节点号是否大于文件系统中所允许的最大目录节点号、关于目 录项及的节点号是否有错和-个目录数据块是否附在文件系统之上等。如果一 个目录节点的类型是“未分配节点”时,fsck就会删除整个目录节点和它所包含的目录 数据块,这通常是由硬件故障引起的。当一个非法数据写入到目录数据块时,会引起目 录节点跑到文件系统节点列表之外,这种情况,fsck将删除这个目录节点。另外,对于 目录项的数据块号必须是目录节点数据块列表中的第一项,因为它相当于这个目录 节点,如果不是这样,fsck会修正它并使它成为此目录节点数据块列表中的第一数据块。

    8.文件系统的连通性

fsck检査文件系统的连通性,检査目录项是否都被链入到文件系统,如果不是则将 它们存入lost+found目录下,这种情况通常发生在硬件出现故障的情况下。


标签:修复 检测 硬件 
相关评论
不良信息举报中心成都网警网警110报警服务AAA级互联网行业信用360网站安全检测

数据恢复QQ交流群:378664983    站长QQ:958754010


技术支持:云客网


蜀ICP备14015947号-2