当前位置: 首页 > news >正文

服务器数据恢复-reiserfs文件系统损坏如何恢复数据?

服务器数据恢复环境:
一台IBM X系列服务器,4块SAS硬盘组建一组RAID5阵列,采用的reiserfs文件系统。服务器操作系统分区结构:boot分区+LVM卷+swap分区(按照前后顺序)。LVM卷中直接划分了一个reiserfs文件系统,作为根分区。

 

服务器故障:
服务器在运行过程中由于未知原因瘫痪,管理员将服务器重装系统,重装系统后发现分区结构变为:boot+swap分区+LVM卷(按照前后顺序),LVM卷中的reiserfs文件系统位置有一个空的reiserfs超级块。
用户需要恢复原LVM卷中的所有用户数据,包括数据库、网站程序与网页、单位OA系统里的所有办公文档。

 

服务器数据恢复过程:
1、将故障服务器中所有磁盘编号后取出,以只读方式将所有磁盘进行全盘的镜像备份。备份完成后按照编号将所有磁盘还原到原服务器中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、北亚企安数据恢复工程师试图通过全盘reiserfs树节点之间的关联确定原reiserfs分区位置。基于镜像文件进行分析后,发现原来存储数据的reiserfs文件系统的前2G数据被覆盖。经过和管理员的沟通,确定了故障发生过程:管理员重新安装系统时错误地初始化了分区结构,装好系统后无法导入LVM卷,于是试图通过reiserfsck进行修复。
reiserfs将文件系统中所有的文件(含目录)线性化后,再以文件key生成B+树。由于树会不断增加节点,树的结构整体拉展后向整个磁盘的数据区做平滑迁移,所以顶级节点通常不会放在文件系统的最前面。因为根目录的文件KEY号通常是最小的,所以前2G数据应该是从根起始路径最近的key节点。用户数据目录层次较深,节点存在的可能性很高。因为reiserfs文件系统前面对整个树的索引全丢失,加上reiserfs的树概念设计抽象,重搭建树会很困难。
3、通过北亚企安自主开发程序在扫描整个原reiserfs文件系统区域的key节点并将所有key节点导出。
4、然后使用北亚企安自主开发程序将所有的叶节点重新排序、过滤(去掉之前删除文件丢弃的节点),重新生成二级、三级、四级等叶节点。
5、选择分区前面的2G空间作为新树的结构区,生成对应地址信息。目录命名问题解决方法:针对原树路径某节点丢失的情况,使用自定义的key节点编号命名;针对无法确定其父目录,可暂加入到/otherfiles目录下。生成树索引信息并写入到特定位置,再根据这些信息生成超级块并设置clear标志。
6、在suse虚拟机下创建快照,挂载修复好的卷,已经可以看到文件了。在修复用的suse虚拟机下挂载用于拷贝数据的目标硬盘,mkfs后将所有数据cp到目标硬盘。
7、用户通过find命令整理所需数据,修正部分目录文件位置与名称。按大小与文件头标志查找部分丢失的散文件,找到后移动到对应的目录并重命名。
8、经过一番努力,所有需要恢复的数据都被找到了。经过用户方的检测,确认恢复出来的数据完整有效。本次数据恢复工作完成。

 

http://www.lryc.cn/news/144591.html

相关文章:

  • 直播预告:把脉2023年下半场—主动防御邮箱盗号威胁
  • 专题:平面、空间直线参数方程下的切线斜率问题
  • JavaScript—对象与构造方法
  • 微信小程序社区户口管理的系统设计与实现
  • 闲人闲谈PS之四十六——网络生产全流程
  • 如何在VR头显端实现低延迟的RTSP或RTMP播放
  • 【工具类】提高办公效率(兼具有趣、好玩)
  • navicat连接数据库的方法(易懂)
  • 收支明细管理实操:如何准确记录并修改收支明细?
  • SSL证书的工作原理是怎样的?
  • Java发送请求到第三方(RestTemplate方法)
  • CentOS 7 Nacos 设置开机自动重启
  • 安防监控平台EasyCVR视频汇聚平台增加首页告警类型的详细介绍
  • 构建安全可信、稳定可靠的RISC-V安全体系
  • 3.RabbitMQ 架构以及 通信方式
  • 分布式事务篇-2.1 阿里云轻量服务器--Docker--部署Seata
  • C语言这么没用??
  • Docker运维篇
  • 【数学建模】清风数模正课7 多元线性回归模型
  • 文心一言 VS 讯飞星火 VS chatgpt (83)-- 算法导论8.1 4题
  • 温故知新之:代理模式,静态代理和动态代理(JDK动态代理)
  • 软件工程(十二) 设计模式之创建型模式
  • 使用docker、docker-compose部署微服务
  • 【Axure高保真原型】中继器网格图片拖动摆放
  • 《基于 Vue 组件库 的 Webpack5 配置》4. 压缩 CSS 和 js 文件
  • electron globalShortcut 快捷键,在焦点移到其他软件上时,调用快捷键报错
  • 【PHP】PHP条件控制
  • 超干货!Linux中断响应流程
  • 统计学补充概念-13-逻辑回归
  • java八股文面试[多线程]——什么是线程安全