服务器数据恢复环境:
一台 ibm 某型号服务器,5 块硬盘组建一组 raid5 磁盘阵列,redhat linux 操作系统,下层部署有 oracle 数据库。
服务器故障:
raid5 阵列中两块硬盘离线,服务器解体。通过初检发现故障服务器中的硬盘不存在物理故障,热备盘未激活,无同步迹象。
服务器数据恢复过程:
1、将故障服务器中的所有磁盘编号后取出槽位,挂载至北亚企安数据备份平台,以只读形式做全盘镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,防止对原始磁盘造成二次毁坏。备份实现后将磁盘依照编号还原到原服务器中。对硬盘做镜像过程中,发现除了 2 号盘有十几个坏扇区外,其余硬盘均失常。
2、基于镜像文件剖析 raid5 构造,获取到原阵列中的条带大小、校验方向、条带规定以及 meta 区域等 raid 相干信息。
3、依据剖析进去的 raid 相干信息虚构重构 raid5。重构实现后进行数据验证,200M 以上的最新压缩包解压无报错。将 raid5 生成到一块硬盘上,通过 USB 的形式接入到原服务器,而后通过 linux SystemRescueCd 启动故障服务器并应用 dd 命令进行全盘回写。
4、数据回写实现后无奈进入操作系统,报错信息为:/etc/rc.d/rc.sysinit:Line 1:/sbin/pidof:Permission denied。北亚企安数据恢复工程师应用 SystemRescueCd 重启后进行查看,发现文件的权限、工夫、大小都有显著谬误。对根分区再次进行剖析,定位出错的 /sbin/pidof/,确定呈现谬误的起因是 2 号盘有坏道。
5、通过其余盘针对 2 号盘的损坏区域进行 xor 补齐并从新校验文件零碎,仍然出错。数据恢复工程师只好再次查看 inode 表,发现 2 号盘损坏区域有局部节点体现为(图中的 55 55 55 局部):
6、尽管节点中形容的 uid 还在,但大小、属性和最后调配块全副是谬误的。通过日志确定原节点块的节点信息并进行修改,从新 dd 根分区,执行“fsck -fn /dev/sda5/”命令进行检测。报错状况如下图:
7、通过剖析发现,原来 3 号盘最先离线,节点信息新旧交加导致有多个节点共用数据块。北亚企安数据恢复工程师按节点所属的文件进行区别,革除谬误节点后再次执行“fsck -fn /dev/sda5”命令,仍然有局部位于 doc 目录下的节点报错。因为不影响启动,强行修复后重启零碎,零碎失常,启动数据库失常。
8、通过用户方工程师重复验证,确认复原数据残缺无效。本次数据恢复工作实现。