「服务器数据恢复」Ext4文件系统fsck后挂载不上并报错的数据修复

服务器数据恢复环境:

某公司Linux系统服务器;

共有两个分区:第一个分区是交换分区,第二个分区是Ext4文件系统。

服务器故障&分析:

Ext4文件系统不能umount,管理员做fsck操作检查一致性,结果导致Ext4文件mount不上。报错信息:mount: wrong fs type, bad option, bad superblock。管理员联系我们数据恢复中心进行数据恢复。

日志和数据不一致造成的正常文件系统数据被覆盖,这种故障经常在Ext3、Ext4文件系统发生,好在本案例中的.journal日志文件留有缓冲,可以从.journal日志文件里找到相应信息并粘贴回相应位置,达到重建原文件的目的。

Ext3、Ext4文件系统有日志功能,本案例考虑从.journal日志文件中找到丢失数据。

服务器数据恢复方案:

经过北亚服务器数据恢复工程师会诊最终敲定以下数据恢复方案:

1、通过.journal日志文件里的超级块备份找到超级块,确定块大小。

2、通过.journal日志文件里的超级块备份找到超级块,重建超级块信息。

3、通过.journal日志文件找到目录节点,重建(恢复)目录。

4、通过.journal日志文件找到目录节点找到要恢复的文件的节点信息,重建(恢复)文件。

服务器数据恢复过程:

首先用工具打开Ext4文件系统,可以看到0-23扇区的数据(包括超级块和块组描述符)被日志记录覆盖。Ext3、Ext4文件系统的日志页以C0 3B 39 98开头。如下图所示。


北亚数据恢复——Ext4文件系统数据恢复


1、确定块大小:

超级块中有关于块大小的信息,可以从.journal日志中查找超级块的备份。用工具查找得到.journal日志中超级块的信息,其标志是“53ef”。查找超级块方式如下图所示。查看块大小方法如图4和图5所示。超级块0x18-0x1B处描述块大小,确定本案例块大小为4KB。


北亚数据恢复——Ext4文件系统数据恢复


通过超级块查看块大小如下图所示。


北亚数据恢复——Ext4文件系统数据恢复


WinHex模板编辑器也可以显示块大小,如下图所示。


北亚数据恢复——Ext4文件系统数据恢复


2、重建(恢复)超级块;

由于原文件系统超级块损坏,所以恢复文件时需要把这部分超级块信息粘贴回去,即放在2号扇区开始,或1024字节处。

完成上述操作,超级块备份的某些地方与实际的超级块数值可能不一致,需要通过WinHex的模板管理器修改一下。本案例对超级块所在的块组作了修改,它在第0个块组里。如下图所示。


北亚数据恢复——Ext4文件系统数据恢复


3、重建(恢复)块组描述表:

由于部分块组描述表被破坏,所以在.journal日志文件里找到所有的块组描述表,并把它们粘贴回去。.journal日志文件里,块组描述符表存储在超级块的后面。所以要找块组描述表时,可以先找到超级块。找到后将块组描述符表内容粘贴到4096字节处。

4、重建(恢复)目录:

当要恢复某个文件夹里的文件时,比如kyproc文件夹里的数据,发现这些文件夹在WinHex里是不能打开的状态,如下图所示。很明显这个目录损坏了,打开其节点信息,发现正常数据被日志填充,如下图2所示。


北亚数据恢复——Ext4文件系统数据恢复

北亚数据恢复——Ext4文件系统数据恢复


我们找到它的上一级目录,即var文件夹,右击点“open”,打开看到var文件里的所有文件的目录信息。找到要恢复的kyproc目录的信息,12 32 EE 00是其i-节点号,10 00表示其目录项长度,06表示其文件名称长度,02表示其文件类型为目录。如下图所示。


北亚数据恢复——Ext4文件系统数据恢复


然后在var文件夹的目录块下查找kyproc目录的位置,如下图所示,标红的位置是找到的结果。此位置显示所在块号为62399108。


北亚数据恢复——Ext4文件系统数据恢复


根据所在块号,就可以定位kyproc目录相应节点的位置。由于人工补节点比较繁琐,北亚数据恢复工程师打开.journal日志文件,从里面找到其节点信息,把相应的信息粘贴回去。

上述方法可以重建(恢复)目录,恢复目录里的文件也是通过同样的方法从.journal日志文件里找到相应的文件的节点信息,找到后粘贴回原来的位置,达到重建(恢复)文件的目的。

5、完成所有的数据恢复操作后,由管理员亲自对恢复出来的数据进行验证,确认恢复出来的数据完整无误,本次数据恢复成功。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章