一.故障描述
由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过程,直到最后的非*空间和非邮件区中没有遗漏的邮件。
- 对所有提取出的邮件,按照数据库中解析到的收件人和发件人归类,每个账号一个文件夹,内含收件和发件两个文件夹。
结果:
第一次 导出邮件 68.2G, 数据量 692,767 个文件
第二次 算法改进后, 导出邮件 77.2G, 数据量 720,209 个文件, 多了3万文件左右
第三次 再次改进算法, 导出邮件 84.8G, 数据量 895,032 个文件, 比第二次多了174823
总的存储空间是605G, 邮件区占用84.8G 剩下的有491.6G *空间,属于全零区域,肯定没有邮件了,非*空间和非邮件区的垃圾数据有28.6G
经过3次大的算法改进,以及中途无数的细节增删,至此,剩余的非*空间和非邮件区经人工验证也已经无法找到新的邮件文件,只剩下一些邮件的中间碎片,无法进行拼接,以及一些杂乱数据,此结果经北亚数据恢复总监亲自审核。
示例如下,邮件中间碎片:
图六
垃圾数据:
图七
六.验证数据
验证数据分为两部分,一个是邮件数据量的验证,通过对几个已知账号的收件和发件数量的统计,大概估算一下邮件的回复比例。二是邮件正确性的验证,用FoxMail打开提取出的邮件,查看内容是否正常.几个账号的数量如下:
图八
一些邮件内容:
图九
图十
七.移交数据
配合客户将所有提取出的邮件迁移到263平台