linux reiserfs文件系统损坏后的数据恢复过程记录

[数据恢复故障描述]

一台IBM X3850服务器,由4块146G SAS硬盘组成 RAID5作为存储介质,操作系统为SUSE LINUX,文件系统全部是reiserfs。

分析后得知:之前的硬盘数据组织结构为: 一个不到100M的boot分区, 后接一个271G的LVM卷,之后是2G的swap分区。LVM卷中直接划分了一个reiserfs 文件系统,作为根分区。

用户在使用过程中,系统未知原因瘫痪。

重装系统后,整个RAID逻辑卷变成了前面2G的boot与swap分区,后接 271G的LVM卷,LVM卷中文件系统位置有个空的reiserfs超级块。

要求恢 复原来271G中文件系统里的所有用户数据,数据分别是MYSQL数据库、PGSQL数据 库、网站程序与网页、单位OA系统里的所有办公文档。

[数据恢复分析]

1、通过对全盘reiserfs树节点之间的关联,确定了原来的reiserfs分区 位置,以此断定,原来存储数据的文件系统前2G被覆盖。

2、应该是用户 在安装系统时错误地初始化了分区结构,之后装好系统后,发现无法导入LVM卷 ,曾做过reiserfsck试图修复。

3、因reiserfs文件系统对文件系统里所 有的文件(含目录)线性化后,再以文件key生成B+树,树不断增加节点,会导致 树的结构整体拉展后向整个磁盘的数据区做平滑迁移,这样,顶级节点通常不会 放在文件系统的最前面。因根目录的文件KEY号通常是最小的,所以,从空间上 看,前2G中存储最多的应该是从根起始路径最近的key节点,这样,用户数据因 目录层次较深,节点存在的可能性很高。

4、前2G覆盖的数据无法恢复, 只能希望不要恰好覆盖用户数据。

5、因文件系统前面对整个树的索引全 丢失,加上reiserfs的树概念设计得很抽象,重搭建树会很困难。

[数据 恢复过程]

1、通过自主程序在整个原文件系统区域进行key节点扫描,将 所有节点导出。

2、通过自主程序对所有叶节点重新排序、过滤(去掉之 前删除文件丢弃的节点),重新生成二级、三级、四级等叶节点。选择分区前面 2G空间做为新树的结构区(反正这部分数据是没用的了,重装系统已经装得满满 的),并生成对应地址信息。应对目录命名问题,如遇到原树路径某节点丢失的 情况,对其用自定义的key节点编号命名,如无法确定其父目录,暂加 入/otherfiles下。

3、根据上面对,生成树索引信息,写入特定位置, 再根据这些信息,生成超级块,设置clear标志。

4、在suse虚拟机下, 创建快照,挂载修复好的卷,已经可以看到文件了。(注:虚拟机与快照的目的 为了操作可加溯,同时因bitmap等元数据不影响数据,未做修正,故挂载前不可 做reiserfsck)。

5、在修复用的suse虚拟机下,挂载用于copy数据的目 标硬盘,mkfs后将所有数据cp到目标盘。

6、用户通过find命令整理所需 数据,修正部分目录文件位置与名称。

7、部分丢失的散文件,按大小与 文件头标志查找,找到后移动及重命名。

[数据恢复结果]

1、所 幸重要数据100%恢复成功。

2、树的不直观性加上程序的调试,使得整个 恢复工作历时3天之久,在繁乱的信息树中跟来跟去,真是烦人得很,幸好撑下 来了。

[随笔]

繁锁的数据恢复分析工作真不是人干的。

。。。

应该让机器干 ^_^

时间: 2024-04-27 09:53:49

linux reiserfs文件系统损坏后的数据恢复过程记录的相关文章

MSSQL ndf文件大小变为0 KB后的数据恢复过程

一.故障描述 成都某客户,存储损坏,数据库崩溃.重组存储,恢复数据库文件,发现有四个ndf文件大小变为0 KB.数据库大小约80TB.数据库中有1223个文件,数据库每10天生成一个NDF文件,每个NDF大约500GB,数据库包含两个LDF文件.二.故障分析 存储损坏,NDF文件大小变为0 KB,根据NDF文件在磁盘上可能存在.可以通过编写数据库扫描碎片程序,扫描数据库碎片.拼接碎片恢复NDF文件,然后修复数据库. 三.恢复过程 1 磁盘扫描,扫描数据库碎片 2 拼接碎片 根据NDF文件的页面特

Linux环境下的ReiserFS文件系统

ReiserFS是一个非常优秀的文件系统.也是最早用于Linux的日志文件系统之一.ReiserFS的开发者非常有魄力,整个文件系统完全是从头设计的.目前,ReiserFS可轻松管理上百G的文件系统,这在企业级应用中非常重要. 一.ReiserFS的特点 1.先进的日志机制 ReiserFS有先进的日志(Journaling/logging)功能 机制.日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘.文件与数据的安全性有了很大提高. 2.高效的磁盘空间利用 Reiserfs对一些小

Linux环境下的ReiserFS文件系统_unix linux

    ReiserFS是一个非常优秀的文件系统.也是最早用于Linux的日志文件系统之一. ReiserFS的开发者非常有魄力,整个文件系统完全是从头设计的.目前,ReiserFS可轻松管理上百G的文件系统,这在企业级应用中非常重要. 一.ReiserFS的特点 1.先进的日志机制 ReiserFS有先进的日志(Journaling/logging)功能 机制.日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘.文件与数据的安全性有了很大提高. 2.高效的磁盘空间利用 Reiserf

Linux文件系统损坏故障怎么办?

  在Linux中出现损坏文件系统的问题后,不仅命令执行失败,而且设备也不能正常工作. 命令执行失败,日志如下: 后果 我osdnode1设备无法正常工作,体现在: 相关命令罗列后不会返回结果 执行创建等命令失败 结果:一直报IO error. 解决方法 通过如下方法修复: fsck -t ext4 /dev/sda3 修复成功后 以上介绍就是修复Linux文件系统故障的全部内容了,虽然Linux文件系统损坏故障比较容易发生,但是修复的方法也是比较简单的,有兴趣的朋友可以尝试下,希望可以帮助到你

Linux网络文件系统的数据备份、恢复及同步机制

本文将详细介绍针对该网络文件系统的数据备份.恢复及同步机制在内核的具体实现,给广大系统管理员和研发人员提供技术参考.网络文件系统(NFS)协议是由 Sun MicroSystem 公司在 20 世纪 80 年代为了提供对共享文件的远程访问而设计和实现的,它采用了经典的客户机/服务器模式提供服务.为了达到如同 NFS 协议通过使用 Sun 公司开发的远在本机上使用本地文件系统一样便捷的效果,NFS 通过使用远程过程调用协议(RPC Protocol)来实现运行在一台计算机上的程序来调用在另一台远程

ZT:reiserfs文件系统反删除(Undelete)操作的实践

http://www.chinalinuxpub.com/read.php?wid=1232 一.关于Linux的文件系统(Filesystem) 请参考: <Linux 文件系统概述> 二.reiserfs 文件系统是否支持undelete操作来恢复数据:一般删除数据有两种情况,一种是通过rm 命令来删除的:另一种是通过格式化销毁数据的,在reiserfs 文件系统中,恢复这两种误操作而引起的数据损失的情况还是有点区别: 1.由于误操作rm 删除命令而造成数据的丢失的恢复情况:通过实践来看,

infortrend ESDS RAID6 数据恢复过程

[数据恢复故障描述] 见<infortrend ESDS RAID6故障后的数据恢复方案>文章中的描述,infortrend ESDS-S12F-G1440存储,内接12块2TB硬盘组成RAID6,一个GPT分区,文件系统为NTFS,大小为18.2TB.3块硬盘离线后强制激活,并做了几分钟REBUILD,发现数据出错. [数据恢复过程] 1.使用DELL R720为恢复服务器平台,安装WINDOWS 2008R2系统.在DELL R720服务器内加DELL H200 6G扩展卡,在H200上接

网站服务器4*136G RAID的数据恢复过程

[数据恢复故障描述] 某网站服务器,品牌为组装,使用tyan(泰安)主板,AMD CPU*4,由4块68针SCSI硬盘 RAID0组成存储体系(听说2007年花了5万元买的,而且采用RAID0,这个专业程度真是不敢恭维). 操作系统为LINUX,重要数据为MYSQL数据库及网站数据文件. 由于电源损坏(5万元买的设备竟然没有冗余电源),重新更换了电源测试,硬件销售商竟然怕数据损坏,留下RAID卡把硬盘全部拔掉启系统(真是无语了),再次连接启动系统时,RAID信息已经损坏. 之后做了一些操作.(此

ESX SERVER VMFS STORAGE被破坏后的数据恢复

对前几天接手的一个VMWARE ESX SERVER的数据恢复案子进行一下总结 [数据恢复故障描述] 中石化某省分公司,信息管理平台,几台ESX SERVER共享一台IBM DS4100存储,大约有40~50组虚拟机,占用1.8TB空间,数据重要. 正常工作中,vc里报告虚拟磁盘丢失,ssh到ESX中执行fdisk -l查看磁盘,发现storage已经没有分区表了.重启所有设备后,ESX SERVER均无法连接到DS4100所在的STORAGE. 仔细询问当时的管理员,他们提到一点,曾经在这个存