服务器数据恢复环境:
某品牌服务器由 4 块 SAS 硬盘组成 RAID5,Linux 操作系统;
存储分区构造:boot 分区 +LVM 卷(划分了一个 reiserfs 文件系统,作为根分区)+swap 分区。
服务器故障:
服务器在失常运行中因为未知起因导致系统瘫痪,管理员重新安装零碎当前发现整个 RAID 逻辑卷变成:boot 分区 +swap 分区 +LVM 卷,LVM 卷中文件系统地位有个空的 reiserfs 超级块。
须要复原的就是原 reiserfs 文件系统中的所有数据,蕴含数据库、网站程序、网页、OA 零碎的所有办公文档。
服务器数据恢复过程:
1、服务器数据恢复工程师首先对故障服务器中所有硬盘以只读形式做扇区级别的镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,防止对原始数据造成二次毁坏。
2、基于镜像文件剖析底层数据,通过对全盘 reiserfs 树节点之间的关联来确定原 reiserfs 分区地位,发现原 reiserfs 文件系统后面局部数据被笼罩,应该是管理员在重装系统时谬误地初始化分区构造,装好零碎后无奈导入 LVM 卷,试图通过 reiserfsck 进行修复。
3、reiserfs 文件系统对文件系统中所有的文件 (含目录) 线性化后会以文件 key 生成 B + 树,树一直减少节点,树的构造整体拉展后会向磁盘的数据区平滑迁徙,所以顶级节点个别不会被放在文件系统的最后面。
4、根目录的文件 KEY 号通常是最小的,从空间上看,reiserfs 文件系统后面的局部数据中存储的应该是从根起始门路最近的 key 节点。该案例的数据目录档次较深,节点很大可能还存在。原 reiserfs 文件系统后面局部被笼罩的数据曾经无奈复原,位于 reiserfs 文件系统后面局部的整个树的索引全副失落,加上 reiserfs 的树概念设计形象,重搭建树行不通。
5、通过北亚企安自主开发程序扫描整个原 reiserfs 文件系统区域的 key 节点,将所有节点导出。而后通过北亚企安自研程序对所有叶节点进行从新排序、过滤(去掉之前删除文件抛弃的节点),从新生成二级、三级、四级等叶节点。抉择分区后面被笼罩的空间作为新树的构造区,生成对应地址信息。
6、对目录命名:如果原树门路某节点失落,则应用自定义的 key 节点编号命名;如果无奈确定其父目录,暂退出到 /otherfiles 目录下。
7、依据上面对生成树索引信息并写入特定地位,再依据这些信息生成超级块,设置 clear 标记。
8、在 suse 虚拟机下创立快照,挂载修复好的卷,这时候曾经能够看到文件了。
9、在用于修复的 suse 虚拟机下挂载用来 copy 数据的指标硬盘,mkfs 后将所有数据 cp 到指标盘。
10、用户应用 find 命令整顿所需数据,修改局部目录文件地位与名称。对于局部失落的散文件则依照文件大小与文件头标记查找,找到后挪动并重命名。
11、通过上述步骤,将所有须要复原的数据都找到了,通过用户的重复验证,确认复原进去的数据残缺可用。