Ext4文件系统FSCK后损坏的修复过程
最新动态来源:点击数:2586更新时间:2020/12/2
某公司Ext4文件系统umount失败,管理员进行了FSCK操作检查一致性,结果导致Ext4文件mount不上(有时也会表现为导致目录变成了文件)。报错提示信息:mount: wrong fs type, bad option,bad superblock。由于日志和数据不一致造成正常文件系统数据被覆盖的情形在Ext3、Ext4文件系统中发生频率较高,不过journal日志文件留有缓冲数据,数据恢复时可以通过joumal日志文件找到相应信息并重建源文件。
Linux系统的硬盘的第一个扇区是MBR扇区,通过MBR分区表观察得知本案例中共分为两个分区,分别为大小为7.8G的交换分区和大小为282G的文件系统,共300G文件大小,工程师探讨后决定通过joumal日志文件分析找回丢失的数据。
1.块大小为固定的4KB,即8个扇区。
2. 超级块(Superblock)起始位置在1024字节处,即2号扇区,大小为2个扇区。
3.块组描述表从第一个块开始,即从4096字节处开始。
【修复过程详解】
第一步:首先用数据恢复工具将Ext4文件系统打开,可以看到0-23扇区的数据(包括超级块和块组描述符)被日志记录覆盖。Ext3、Ext4文件系统的日志页以C0 3B 39 98开头。超级块中可以反映出关于块大小的信息。从.journal日志中吧超级块的备份查找出来再通过数据恢复工具进行超级块信息的查找。其标志是“53ef”。超级块0x18-0x1B处描述块大小,确定本案例块大小为4KB。
第二步:重建(恢复)超级块;由于原文件系统超级块损坏,所以恢复文件时,要把这部分超级块信息粘贴回去,即放在2号扇区开始,或1024字节处。做完以上操作,超级块备份某些地方与实际的超级块数值可能不一致,需要通过数据恢复工具的模板管理器进行修改。本案例对超级块所在的块组作了修改,它在第0个块组里。
如图所示。
第三步:重建(恢复)块组描述表;由于部分块组描述表被破坏,所以在.journal日志文件里找到所有的块组描述表,并把它们粘贴回去。.journal日志文件里,块组描述符表存储在超级块的后面。所以要找块组描述表时,可以先找到超级块。找到后将块组描述符表内容粘贴到4096字节处。
第四步:重建目录;当我们要恢复某个文件夹里的文件时,比如我们需要恢复kyproc文件夹里的数据。我们发现这些文件夹在WinHex里是不能打开的状态。很明显这个目录损坏了,打开其节点信息,发现正常数据被日志填充。
我们找到它的上一级目录,即var文件夹。右击点“open”,打开看到var文件里的所有文件的目录信息。找到要恢复的kyproc目录的信息,12 32 EE 00是其i-节点号,10 00表示其目录项长度,06表示其文件名称长度,02表示其文件类型为目录。如图所示。
第五步:在var文件夹的目录块下查找kyproc目录的位置,如图所示,标红的位置是找到的结果。此位置显示所在块号为62399108。
第六步:根据所在块号,就可以定位kyproc目录相应节点的位置。由于人工补节点比较繁琐,我们可以打开.journal日志文件,从里面找到其节点信息,把相应的信息粘贴回去。
上述方法可以重建(恢复)目录,恢复目录里的文件也是通过同样的方法从.journal日志文件里找到相应的文件的节点信息,找到后粘贴回原来的位置,达到重建(恢复)文件的目的。
北京北亚数据恢复中心:4006-505-646