XFS文件系统恢复案例

505 阅读2分钟
 【故障情况描述】 

在这里分享一篇XFS文件系统恢复的案例,经客户描述,客户使用MD1200磁盘柜+RAID卡的方式,创建一组RAID5阵列,分配一个LUN共55T左右,在Linux系统层面对LUN进行分区,划分SDC1和SDC2两个分区,其中SDC1分区大小为2T,通过LVM扩容的方式,将SDC1分区加入到了root_lv中,剩余的SDC2分区格式化为XFS文件系统使用。 客户在对服务器进行重装系统操作后,发现SDC磁盘分区改变,原先的SDC2分区丢失,无法访问。 

【数据恢复案例】

 为防止数据恢复过程中由于误操作对原始磁盘造成二次破坏, 使用WINHEX软件为每块磁盘做镜像, 以后所有的数据恢复操作都在镜像盘上进行, 不会对原始磁盘造成影响。

 图一: 

1、使用镜像盘分析raid的盘序、条带大小等信息。

 2、虚拟重组出raid结构。 

3、定位到XFS文件系统的分区起始位置。 

4、校验XFS文件系统的完整性及正确性。 

5、修复XFS文件系统的超级块结构。 

图二:修复完成的超级块

 6、对XFS文件系统中丢失的节点及目录项进行修复。 

 

图三:修复完成的根节点

 

图四:重做的目录项

 7、修复完成后编写程序解析XFS文件系统,提取其中的数据。 

【数据恢复验证及结果】

 对丢失的XFS文件系统的进行检测后发现,文件系统头部的超级块及部分节点、目录项丢失,根据超级块备份及文件系统中的目录树结构,对超级块进行修复还原,对丢失的节点、目录项进行修补、重构之后,文件系统中99%以上的数据可以完整恢复。 

 图五:修复完成的目录结构 

由于数据丢失之后客户未对存储做任何写入的破坏性操作,所以数据及文件系统信息绝大部分保留完整,数据几乎100%恢复,本次数据恢复成功。