服务器数据恢复—EXT3文件系统下邮件数据被误删的数据恢复案例

news2024/11/28 8:48:23

服务器数据恢复环境:
邮件服务器中有一组由8块盘组成的RAID5阵列, 上层是Linux操作系统+EXT3文件系统。

服务器故障:
由于误删除导致文件系统中的邮件数据丢失。

服务器数据恢复过程:
1、将故障服务器中所有硬盘做好标记后取出,硬件工程师检测后没有发现有硬盘存在硬件故障。以只读方式将所有磁盘进行扇区级全盘镜像备份,镜像完成后将所有磁盘按照原样还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。

2、基于镜像文件分析所有磁盘底层数据,分析数据在硬盘中分布的规律,获取重组raid所需要的相关信息(起始扇区、盘序、条带大小、校验方向、数据走向等)。根据上述获取到的信息重组RAID。

3、组建好的RAID中可以看到上层划分的几个EXT3分区。分析每个分区中的底层数据,,发现其中一个分区里面有大量的邮件头,并且有nsmail目录,因此可以确认此分区是需要恢复数据的目标分区。将此分区导出以待后用。
RAID中的所有分区:

nsmail文件夹:

邮件头示例:

4、恢复邮件数据。
由于EXT3文件系统中文件被删除后,节点中的文件大小和块指针都会被清零,因此很难通过常规方法恢复数据。需要针对EXT3文件系统特点和邮件文件本身的结构,确定算法。根据算法编写程序,使用程序扫描整个文件系统。将扫描找到的邮件文件全部取出,然后根据邮件本身记录的收件人、发件人、抄送、主题等信息进行整理,然后将数据迁移到邮件平台上。
邮件数据恢复过程:
a、编写邮件标识程序。
b、按照算法编写在ext3文件系统中提取≥48k邮件和提取<48k邮件的程序,对邮件进行提取。提取同时生成邮件索引信息库,并且提取非自由空间和非邮件区。
c、人工分析提取的非自由空间和非邮件区,确定无遗漏的邮件。如果有遗漏的邮件,确定遗漏的原因,调整算法,重新进行扫描。直到非自由空间和非邮件区中没有遗漏的邮件。
d、按照数据库中解析到的收件人和发件人归类所有提取的邮件。每个账号一个文件夹,内含收件和发件两个文件夹。
结果:
第一次扫描结果:导出邮件60多GB, 60多万个文件。
第二次扫描结果:改进算法后, 导出邮件70多GB, 多了三万多个文件。
第三次扫描结果:再次改进算法, 导出邮件80多GB, 比上次多了十多万个文件。
总的存储空间是600多GB, 邮件区占用80多GB,剩下的自由空间属于全零区域,肯定没有邮件了,非自由空间和非邮件区的垃圾数据有20多GB。
经过数次算法改进和多次细节调整,剩余的非自由空间和非邮件区经过人工验证也无法找到新的邮件文件,只剩下一些无法拼接的邮件中间碎片和杂乱数据。
邮件中间碎片:

垃圾数据:

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

一些邮件内容:

6、移交数据。将所有提取出的邮件迁移到邮件平台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2222489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试必备:RabbitMQ与Kafka核心知识点总结

写在前面 🔥我把后端Java面试题做了一个汇总,有兴趣大家可以看看!这里👉 ⭐️在无数次的复习巩固中,我逐渐意识到一个问题:面对同样的面试题目,不同的资料来源往往给出了五花八门的解释&#…

Windows电脑怎么设置局域网内共享磁盘?

一、设置局域网磁盘共享 1、假设这是电脑A,先启动公用文件夹共享: (1)点击【控制面板】 (2)点击【网络和Internet】 (3)点击【网络和共享中心】 (4)点击【…

【linux网络编程】 | 网络基础Ⅰ| 认识网络

前言: 在本节几乎不讲任何网络协议的系结, 只是将网络的概念搭建起来。本节将会讲到网络的一些专有名词, 概念, 以及网络的结构划分等等。 主要是带大家做一下前期知识的铺垫。 下面, 开始我们的学习吧! ps:本节内容因…

成功解决pycharm软件中按住Ctrl+点击指定函数却不能跳转到对应库中的源代码

成功解决pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 目录 解决问题 解决方法 解决问题 在pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 解决方法

docker容器无法连接宿主机mysql排查

1、docker无法访问宿主机 在docker容器内,需要访问当前docker容器的网关,例如172.xx.0.1,即可访问宿主机,因此需要保证docker的网络配置正确 查看当前docker容器的网关: docker inspect 你的容器名或者容器id 显示…

《深度学习》 了解YOLO基本知识

目录 一、关于YOLO 1、什么是YOLO 2、经典的检测方法 1)one-stage单阶段检测 模型指标介绍: 2)two-stage多阶段检测 二、关于mAP指标 1、概念 2、IOU 3、关于召回率和准确率 4、示例 5、计算mAP 一、关于YOLO 1、什么是YOLO YOL…

图的最小生成树算法--普里姆(Prim)算法和克鲁斯克尔(Kruskal)算法

一、图的最小生成树 最小生成树(Minimum spanning tree,MST)是最小权重生成树(Minimum weight spanning tree)的简称,是一个连通加权无向图中一棵权值最小的生成树。 在一给定的无向图 G ( V , E ) G …

Bug:通过反射修改@Autowired注入Bean的字段,明确存在,报错 NoSuchFieldException

【BUG】通过Autowired注入了一个Bean SeqNo,测试的时候需要修改其中的字段。通过传统的反射,无论如何都拿不到信息,关键是一方面可以通过IDEA跳转,一方面debug也确实能看到这个字段。但是每次调用set方法报错:NoSuchFi…

C++ [项目] 愤怒的小鸟

现在才发现C游戏的支持率这么高,那就发几篇吧 零、前情提要 此篇为 制作,由于他没有CSDN,于是由我代发 一、基本介绍 支持Dev-C5.11版本(务必调为英文输入法),基本操作看游戏里的介绍,怎么做的……懒得说,能看懂就看注释,没有的自己猜,如果你很固执……私我吧 …

伺服电动缸用途分析

力姆泰克伺服电动缸是一种先进的电动执行器,由伺服电动机和传动机构组成。它能够提供高精度的位置控制和力量输出,并具有快速响应和高重复性的特点。 力姆泰克伺服电动缸可广泛应用于自动化系统和机械设备中,例如工业机械、机床、自动化生产…

什么是恶意爬虫,有什么应对措施

在当今数字化时代,网络爬虫作为一种重要的数据收集工具,广泛应用于搜索引擎、数据分析、商业情报等领域。然而,恶意爬虫的出现,却给网站安全带来了前所未有的挑战。今天我们就来简单了解下什么是恶意爬虫,爬虫对网站的…

npm install node-sass安装失败

需求:搭建前端开发环境时,npm install报错,错误提示安装node_modules时,node-sass依赖包安装失败,网上找了好久解决方法,大家提示采用淘宝源等方式安装,都失败了了,尝试了很久终于找…

基于WIFI的智能台灯设计

1系统整体设计 本次围绕LED台灯,来设计一款基于WIFI的智能台灯,结合STM32单片机和多种传感器来共同完成该设计,整个设计的主要功能如下: 1.有自动和手动模式,自动模式自动调节光强,手动模式即手动控制&am…

垂起固定翼无人机挂载迫击抛投器技术详解

垂起固定翼无人机挂载迫击抛投器技术是一种结合了固定翼无人机长航时、高速度和垂直起降灵活性的先进技术。以下是对该技术的详细解析: 一、技术背景与优势 垂起固定翼无人机通过结合固定翼和多旋翼的设计,实现了无需长距离滑行跑道的垂直起降&#xf…

写了一个SpringBoot的后端管理系统(仅后端)pine-manage-system

文章目录 前言正文🚀 技术栈🛠️ 功能模块📁 项目结构🌈 接口文档🚀 项目启动 附录项目功能代码示例1、数据库拦截器-打印sql执行时间2、数据记录变更拦截器3、用户角色数据权限拦截器4、实体转换器接口5、触发器模版6…

青少年编程能力等级测评CPA C++ 四级试卷(2)

青少年编程能力等级测评CPA C 四级试卷(2) 一、单项选择题(共15题,每题3分,共45分) CP4_2_1. 下列有关面向对象程序设计的叙述中,不正确的是( )。 A.面向对…

__桥接模式

在C#中 初始版本 namespace _013_桥接模式 {/// <summary>/// 玩家抽象类/// </summary>public abstract class AbstractPlayer{protected IWeapon _weapon;//武器引用public void SetWeapon(IWeapon weapon){_weapon weapon;}//抽象方法使用武器public abstract…

Windows下Python3.8环境快速安装部署

为了帮助非python计算机软件开发人员快速上手使用python环境&#xff0c;我准备好了的Python 3.8免安装环境&#xff0c;并安装Jupyter Notebook以进行Python学习&#xff0c;以下是一个简单易懂的教程。请按照以下步骤操作&#xff1a; 步骤 1: 解压Python环境 下载并解压&a…

药智网数据库和摩熵医药数据库哪个好?

药智和摩熵医药(原药融云)作为医药行业内专业的医药数据库平台&#xff0c;它们各自在行业内占据着重要的地位&#xff0c;并且都在不断地创新和完善自己的数据库服务&#xff0c;以满足行业日益增长的需求为医药行业的数据服务、决策支持、研发分析等方面提供支持。. 但让大家…

java拆分地址中的省市县区,全国地址通用

package com.sure;import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * description: 拆分地址工具类 * fileName: AddressResolutionUtil.ja…