服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例
服务器数据恢复环境:
一台服务器中有一组由4块SAS硬盘组建的RAID5阵列,上层安装linux操作系统统。分区结构:boot分区+LVM卷+swap分区(按照顺序),LVM卷中划分了一个reiserfs文件系统作为根分区。
服务器故障:
服务器操作系统在运行过程中由于未知原因崩溃,管理员重装操作系统后发现分区结构变为:boot分区+swap分区+LVM卷(按照顺序),LVM卷中文件系统位置有个空的reiserfs超级块。
用户方需要恢复reiserfs文件系统中所有数据,包含数据库、网站程序与网页、OA系统中所有办公文档。

服务器数据恢复过程:
1、将故障服务器中所有磁盘做好标记后取出,硬件工程师检测后没有发现有硬盘存在硬件故障。以只读方式将所有硬盘进行扇区级全盘镜像,镜像过程中也没有发现有硬盘存在大量坏道。镜像完成后将所有磁盘按照原样还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有磁盘底层数据。通过对全盘reiserfs树节点之间的关联确定原来的reiserfs分区位置,发现原来存放数据的reiserfs文件系统前几G数据已经被覆盖,应该是在安装系统时错误地初始化了分区结构。管理员在装好操作系统后发现无法导入LVM卷,于是使用reiserfsck工具试图修复文件系统。
reiserfs文件系统对文件系统里所有的文件(含目录)线性化后,再以文件key生成B+树。随着树不断增加节点,树的结构会整体拉展,然后向整个磁盘的数据区做平滑迁移,所以顶级节点通常不会处于文件系统的最前面。根目录的文件KEY号通常是最小的,所以,从空间上看,被覆盖的前几G的空间中存放的应该是离根起始路径最近的key节点。用户的数据因目录层次较深,所以节点存在的可能性很高。

3、使用北亚企安自主开发程序在整个原文件系统区域扫描key节点并将所有节点导出,然后重新排序和过滤(去掉之前删除文件丢弃的节点)所有叶节点,重新生成二级、三级、四级等叶节点。选择分区前面几G空间作为新树的结构区,并生成对应地址信息。
应对目录命名问题,如遇到原树路径某节点丢失的情况,对其用自定义的key节点编号命名。如无法确定其父目录,暂加入/otherfiles下。根据上面对生成树索引信息并写入特定位置,再根据这些信息生成超级块和设置clear标志。在suse虚拟机下创建快照并挂载修复好的卷,这时已经可以看到文件了。
4、在修复用的suse虚拟机下,挂载用于拷贝数据的目标硬盘,mkfs后将所有数据cp到目标盘。
5、用户通过find命令整理所需数据,修正部分目录文件位置与名称。
6、针对部分丢失的散文件,按照大小与文件头标志查找,找到后移动及重命名。
7、经过工程师努力,最终将所有数据恢复出来。经过用户方验证,确认数据完整有效,认可数据恢复结果。

相关文章:
服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例
服务器数据恢复环境: 一台服务器中有一组由4块SAS硬盘组建的RAID5阵列,上层安装linux操作系统统。分区结构:boot分区LVM卷swap分区(按照顺序),LVM卷中划分了一个reiserfs文件系统作为根分区。 服务器故障…...
lua入门教程:type函数
在Lua中,type 函数是一个内置函数,用于返回给定值的类型。Lua 支持多种数据类型,包括 nil(空值)、boolean(布尔值)、number(数字)、string(字符串)…...
Java图片转word
该方法可以控制一页是否只显示存放一张图片 第一步 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency><dependency><groupId>org.apache…...
立体视觉的核心技术:视差计算与图像校正详解
立体视觉的核心技术:视差计算与图像校正详解 在立体视觉中,通过双目相机(即左右两台相机)的不同视角捕获的图像,结合几何关系,我们可以推算出场景中物体的深度。本文将深入讲解如何基于视差(di…...
PaddleNLP的FAQ问答机器人
项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【DDRNet模型创新实现人像分割】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实…...
2024年12月中国多场国际学术会议,EI检索录用!
2024年12月,多场国际学术会议将在中国多地召开,涵盖AI、机器人、大数据、网络安全、传感制造、环境工程、物联网等领域,促进学术交流,录用论文将EI检索,诚邀国内外专家参会。 第三届人工智能、人机交互和机器人国际学…...
日语学习的难易程度
日语学习的难易程度是一个相对主观的问题,它受到多种因素的影响,包括个人的语言学习能力、学习方法、学习时间、学习资源的可获得性以及个人对日语文化的兴趣和投入程度等。以下是对日语学习难易程度的一些分析: 优点与易学之处 文字系统&am…...
java-web-web后端知识小结
spring框架三大核心: IOC--控制反转 DI---依赖注入 AOP--面向切面编程 web开发技术小结 1.过滤器,JWT令牌 2.三层架构 IOC, DI AOP, 全局异常处理, 事务管理 mybatis 3.数据操作与存储 mysql 阿里云OSS(云存储) 各个技术的归属: 1.过滤器, cookie,session--javaWeb 2.JWT, 阿里…...
常见的排序算法(二)
归并排序 归并排序(Merge Sort)是一种基于分治法(Divide and Conquer)的排序算法。它将一个大的问题分解成小的问题,然后递归地解决这些小问题,最后合并(merge)得到最终的排序结果。…...
spark的RDD分区的设定规则
目录 一、第一种:parallelize 获取rdd时 二、第二种:通过外部读取数据-textFile 三、上面提到了默认分区数,那么默认分区是怎么计算呢? 一、第一种:parallelize 获取rdd时 没有指定:spark.default.paral…...
【点云网络】voxelnet 和 pointpillar
VoxelNet 和 pointpillar 这两个网络可以认为后者是前者的升级版本,都是采用了空间划分的方法, 一个是体素,一个是pillar, 前者是3D卷积处理中间特征,后者是2D卷积处理中间特征。 voxelnet voxelnet 应该是比较早的onestage的网…...
HAL库硬件IIC驱动气压传感器BMP180
环境 1、keilMDK 5.38 2、STM32CUBEMX 初始配置 默认即可。 程序 1、头文件 #ifndef __BMP_180_H #define __BMP_180_H#include "main.h"typedef struct {float fTemp; /*温度,摄氏度*/float fPressure; /*压力,pa*/float fAltitude; /*…...
探索Python音频处理的奥秘:Pydub库的魔法
文章目录 探索Python音频处理的奥秘:Pydub库的魔法第一部分:背景介绍第二部分:Pydub是什么?第三部分:如何安装Pydub?第四部分:Pydub的简单函数使用方法1. 打开音频文件2. 播放音频3. 导出音频文…...
LeetCode 热题100(七)【链表】(2)
目录 7.6合并两个有序链表(简单) 7.7两数相加(中等) 7.8删除链表的倒数第N个节点(中等) 7.9两两交换链表中的节点(中等) 7.10k个一组翻转链表(困难) 7.6…...
计算机网络 TCP/IP体系 网络层
一. 网络层的基本概念 网络层主要负责将数据从源端主机发送到目的端主机。在这一过程中,网络层要解决的关键问题是数据包的路由选择,即确定数据包通过互联网的最佳路径。 1.1 网络层的信息类型 数据包:这是网络层传输的主要形式,…...
迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证
近日,深圳市遨游通讯设备有限公司(以下简称“遨游通讯”)旗下5G防爆手机——AORO M8,通过了CSA集团的严格测试和评估,荣获国际IECEx及欧盟ATEX防爆认证证书。2024年11月5日,CSA集团和遨游通讯双方领导在遨游…...
实习作假:阿里健康实习做了RABC中台,还优化了短信发送流程
最近有二本同学说:“大拿老师,能帮忙看下简历吗?” 如果是从面试官的角度来看,这个同学的实习简历是很虚假的。 但是我们一直强调的是:校招的实习简历是不能出现明显的虚假。 首先,你去公司做事情&#…...
Unity中IK动画与布偶死亡动画切换的实现
在Unity游戏开发中,Inverse Kinematics(IK)是创建逼真角色动画的强大工具。同时,能够在适当的时候切换到布偶物理状态来实现死亡动画等效果,可以极大地增强游戏的视觉体验。本文将详细介绍如何在Unity中利用IK实现常规…...
java导出word文件(手绘)
文章目录 代码细节效果图参考资料 代码细节 使用的hutool的WordUtil,WordUtil对poi进行封装,但是这一块的官方封装的很少,很多细节都没有。代码中是常见的绘制段落,标题、表格等常用api Word07Writer writer WordUtil.getWriter(…...
ssm070基于SSM框架的校园代购服务订单管理系统的设计与实现+vue(论文+源码)_kaic
毕业设计 题 目: 校园代购服务订单管理系统 作 者: 学 号: 所属学院: 专业年级: 学校导师: 职 称: 班级导师: 职 称: 完成时间…...
地空协同巡检新范式:elec-ops-inspection 3D空间建模技术
地空协同巡检新范式:elec-ops-inspection 3D空间建模技术 【免费下载链接】elec-ops-inspection elec-ops-inspection 是 CANN 社区 Electrical Engineering SIG(电力行业兴趣小组)旗下的电力装备巡检算子库, 覆盖 CV 视觉检测与具…...
OpCore-Simplify终极指南:10分钟自动化完成黑苹果配置的完整教程
OpCore-Simplify终极指南:10分钟自动化完成黑苹果配置的完整教程 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而…...
FanControl风扇控制软件:5分钟快速上手指南,轻松解决电脑噪音与散热难题
FanControl风扇控制软件:5分钟快速上手指南,轻松解决电脑噪音与散热难题 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gi…...
挑选专业语音工具不会选?这5个实用标准帮到你
日常工作生活中,不少人会遇到会议纪要整理、课堂录音梳理、嘉宾访谈整理等场景,这类场景往往需要耗费大量时间抠语音内容,挑选语音转写工具时,也常面临准确率差、速度慢等问题,结合多款主流AI工具实测,整理…...
从Ring Bus到Mesh:聊聊Intel CPU内部那些‘堵车’与‘修路’的往事
从Ring Bus到Mesh:Intel CPU内部通信架构的演进与工程智慧 1. 当CPU内部变成"早高峰的北京三环" 2006年,Intel工程师们围在白板前,盯着密密麻麻的电路图皱起了眉头。他们刚刚完成测试的八核处理器原型机显示:当所有核心…...
工厂考勤数据分散怎么破?实在Agent助力企业数字化转型实现非侵入式数据整合
摘要: 我是企业架构师老王。在2026年的今天,尽管智能制造已进入深水区,但“工厂考勤数据分散、打卡请假加班数据无法自动整合”依然是困扰无数中大型制造企业的“顽疾”。传统的API集成方案在面对老旧系统和复杂的异构环境时,往往…...
LabVIEW项目实战:用‘类+队列’模式管理仪器参数,告别全局变量混乱
LabVIEW工程实践:基于类与队列的仪器参数管理框架设计 在工业自动化测试系统中,仪器参数管理一直是困扰工程师的典型难题。当系统需要同时控制网口、串口、GPIB等多种接口的测试设备时,传统的全局变量方案会导致参数耦合、修改不同步等问题。…...
用HyperLynx VX2.5做LPDDR4X与高速串行总线仿真的完整工作流
HyperLynx VX2.5实战:LPDDR4X与高速串行总线仿真全流程解析 在当今高速电路设计领域,信号完整性问题已成为制约产品性能的关键瓶颈。尤其对于搭载LPDDR4X内存和高速串行总线的移动设备与服务器,工程师们常常陷入这样的困境:设计阶…...
JetBrains IDE试用期重置终极指南:如何永久免费使用专业开发工具
JetBrains IDE试用期重置终极指南:如何永久免费使用专业开发工具 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期到期而烦恼吗?每次30天试用结束后,那…...
告别Bash!在Ubuntu 22.04上打造你的终极开发终端:Terminator + ZSH + OhMyZsh保姆级配置
告别Bash!在Ubuntu 22.04上打造你的终极开发终端:Terminator ZSH OhMyZsh保姆级配置 如果你是一名长期使用Ubuntu进行开发的程序员,是否曾对默认的Bash终端感到效率瓶颈?每天重复输入冗长命令、频繁切换窗口、手动补全路径...这…...
