看了这篇文章,再也不用担心邮件被误删除了

简介:

一.故障描述
由8块盘组成的RAID5, 上层是EXT3文件系统,由于误删除导致文件系统中的邮件丢失
二.镜像磁盘
为防止数据恢复过程中由于误操作对原始磁盘造成二次破坏, 使用winhex软件为每块磁盘做镜像, 以后所有的数据恢复操作都在镜像盘上进行, 不会对原始磁盘造成影响
镜像结果如下:
图一
1

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

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

RAID中的所有分区如下:

nsmail文件夹:
图四
4

邮件头示例:
图五
5

五.邮件恢复
由于EXT3文件系统中文件删除后,节点中的文件大小和块指针都被清零, 因此很难通过常规手段去恢复。针对EXT3文件系统的特点和邮件文件本身的结构,确定算法概要:
在整个文件系统范围内,做全盘扫描,将找到的邮件文件全部取出,然后根据邮件本身记录的收件人、发件人、抄送、主题等信息进行整理,最后再将数据迁移到263平台上
详细过程:
1.完成邮件标识程序,识别收发人、主题等memi标识程序编写。
2.完成ext3超过48k邮件提取程序编写。
3.按小于48k、大于48k两种算法对邮件进行提取。提取同时,生成邮件索引信息库,并且提取非自由空间和非邮件区。
4.对3中提取的非自由空间和非邮件区进行人工分析,确定有无遗漏的邮件,如果有,确定遗漏的原因,调整算法,重新进行扫描。
5.重复3,4过程,直到最后的非自由空间和非邮件区中没有遗漏的邮件。

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

第一次 导出邮件 68.2G, 数据量 692,767 个文件
第二次 算法改进后, 导出邮件 77.2G, 数据量 720,209 个文件, 多了3万文件左右
第三次 再次改进算法, 导出邮件 84.8G, 数据量 895,032 个文件, 比第二次多了174823
总的存储空间是605G, 邮件区占用84.8G 剩下的有491.6G 自由空间,属于全零区域,肯定没有邮件了,非自由空间和非邮件区的垃圾数据有28.6G
经过3次大的算法改进,以及中途无数的细节增删,至此,剩余的非自由空间和非邮件区经人工验证也已经无法找到新的邮件文件,只剩下一些邮件的中间碎片,无法进行拼接,以及一些杂乱数据,此结果经北亚数据恢复总监亲自审核。
示例如下,邮件中间碎片:
图六
6

垃圾数据:
图七
7

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

一些邮件内容:
图九
9

图十
10

七.移交数据
配合客户将所有提取出的邮件迁移到263平台

相关文章
|
3月前
|
弹性计算 安全 机器人
定时提醒再也不用担心忘记啦
好记性不如烂笔头,烂笔头不如靠谱的自动化~~~正在寻找自动化流程编排工具或定时任务工具的朋友们赶紧看过来,为你介绍一款简单配置即可实现自动化定时提醒的平台阿里云计算巢AppFLow。
193 0
|
12月前
|
安全 网络协议 Java
【紧急】Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,小白也能看懂
经过一周时间的Log4j2 RCE事件的发酵,事情也变也越来越复杂和有趣,就连 Log4j 官方紧急发布了 2.15.0 版本之后没有过多久,又发声明说 2.15.0 版本也没有完全解决问题,然后进而继续发布了 2.16.0 版本。大家都以为2.16.0是最终终结版本了,没想到才过多久又爆雷,Log4j 2.17.0横空出世。
500 0
|
Web App开发 安全 中间件
学会这招,技术问题再也难不倒你
学会这招,技术问题再也难不倒你
学会这招,技术问题再也难不倒你
rpcms后台地址忘了怎么办?来教你找回
rpcms如果忘记后台地址了,如何找回的方法。1、如果你在安装rpcms的时候没有自定义后台地址,或者没有填写,那默认就是admin。2、如果你修改过了,那就在setting/config/default.php(V3.0以下在config.php)文件中查看,找到diy_admin,这个参数的值就是自定义的后台地址。
rpcms后台地址忘了怎么办?来教你找回
|
安全 Windows
Win系统 - 更新后,竟有这么“严重”的后果?
Win系统 - 更新后,竟有这么“严重”的后果?
139 0
Win系统 - 更新后,竟有这么“严重”的后果?
|
Java 应用服务中间件 API
看完再也不担心不会文章的上传与下载(建议收藏)
​ 既然文件上传如此头疼,那么总该有人挺身而出帮我们解决这个难题。Servlet 3.0 提供了文件上传操作功能,而且使用也非常简单。
107 0
看完再也不担心不会文章的上传与下载(建议收藏)
|
程序员 Windows
有了它,再也不用担心我的截图了
有了它,再也不用担心我的截图了
218 0
有了它,再也不用担心我的截图了
|
SQL 关系型数据库 MySQL
妈妈再也不用担心我把数据弄丢了
数据是现代大小厂的重要资产,保护和恢复数据成为了重要的技能, 最近几年,常有一些无良程序员删库跑路的情况,不仅给所在企业更是给自己造成重大的损失。 另外,即使不是故意的情况下,也会因为疏忽造成数据误操作,是一件及麻烦又头疼的事情……
137 0
|
架构师 算法 Java
不要网上乱拷贝代码了!一段网上找的代码把公司服务器崩了!
碰到一个需求,给服某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算。这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。
|
缓存 Ubuntu Linux
常用Linux命令,记录一下,避免搞忘记!
系统信息  arch 或 uname -m 显示机器的处理器架构 uname -r 显示正在使用的Linux内核版本号 cat /proc/cpuinfo (Linux查看cpu相关信息,包括型号、主频、内核信息等) ...
1375 0