邮件数据恢复解决方法

一.故障描述

由8块盘组成的RAID5, 上层是EXT3文件系统,由于误删除导致文件系统中的邮件丢失


二.镜像磁盘

为防止数据恢复过程中由于误操作对原始磁盘造成二次破坏, 使用winhex软件为每块磁盘做镜像, 以后所有的数据恢复操作都在镜像盘上进行, 不会对原始磁盘造成影响

镜像结果如下:

图一

邮件数据恢复解决方法

三.组建RAID

通过分析数据在硬盘中分布的规律, 获取RAID类型, RAID条带的大小,以及每块磁盘的顺序。根据分析结果使用UFS组建RAID。

结果如下:

图二

邮件数据恢复解决方法


四.导出目标分区

从组建好的RAID中可以看出,上层划分了好几个EXT3分区,通过对每个分区中底层数据的分析, 发现605G的分区里面有大量的邮件头,并且有nsmail目录, 确认此分区是数据恢复的目标分区,使用UFS软件将此分区导出,以便后续处理。

图三

邮件数据恢复解决方法

RAID中的所有分区如下:

nsmail文件夹:

图四

邮件数据恢复解决方法 


邮件头示例:

图五

邮件数据恢复解决方法

五.邮件恢复

由于EXT3文件系统中文件删除后,节点中的文件大小和块指针都被清零, 因此很难通过常规手段去恢复。针对EXT3文件系统的特点和邮件文件本身的结构,确定算法概要:

在整个文件系统范围内,做全盘扫描,将找到的邮件文件全部取出,然后根据邮件本身记录的收件人、发件人、抄送、主题等信息进行整理,最后再将数据迁移到263平台上

详细过程:

1.完成邮件标识程序,识别收发人、主题等memi标识程序编写。

2.完成ext3超过48k邮件提取程序编写。

3.按小于48k、大于48k两种算法对邮件进行提取。提取同时,生成邮件索引信息库,并且提取非*空间和非邮件区。

4.对3中提取的非*空间和非邮件区进行人工分析,确定有无遗漏的邮件,如果有,确定遗漏的原因,调整算法,重新进行扫描。

5.重复3,4过程,直到最后的非*空间和非邮件区中没有遗漏的邮件。

6. 对所有提取出的邮件,按照数据库中解析到的收件人和发件人归类,每个账号一个文件夹,内含收件和发件两个文件夹。

结果:

第一次 导出邮件 68.2G, 数据量 692,767 个文件

第二次 算法改进后, 导出邮件 77.2G, 数据量 720,209 个文件, 多了3万文件左右

第三次 再次改进算法, 导出邮件 84.8G, 数据量 895,032 个文件, 比第二次多了174823

总的存储空间是605G, 邮件区占用84.8G 剩下的有491.6G *空间,属于全零区域,肯定没有邮件了,非*空间和非邮件区的垃圾数据有28.6G

经过3次大的算法改进,以及中途无数的细节增删,至此,剩余的非*空间和非邮件区经人工验证也已经无法找到新的邮件文件,只剩下一些邮件的中间碎片,无法进行拼接,以及一些杂乱数据,此结果经北亚数据恢复总监亲自审核。

示例如下,邮件中间碎片:

图六

邮件数据恢复解决方法

垃圾数据:

图七

邮件数据恢复解决方法 

六.验证数据 

验证数据分为两部分,一个是邮件数据量的验证,通过对几个已知账号的收件和发件数量的统计,大概估算一下邮件的回复比例。二是邮件正确性的验证,用FoxMail打开提取出的邮件,查看内容是否正常.几个账号的数量如下:

图八

邮件数据恢复解决方法

一些邮件内容:

图九

邮件数据恢复解决方法

图十

邮件数据恢复解决方法 

七.移交数据 

配合客户将所有提取出的邮件迁移到263平台










本文转自 宋国建 51CTO博客,原文链接:http://blog.51cto.com/sun510/1958029,如需转载请自行联系原作者
上一篇:误删数据恢复


下一篇:Oracle ASM故障数据恢复