尝试在使用 dd 创建的映像上恢复 MDADM RAID

尝试在使用 dd 创建的映像上恢复 MDADM RAID

我有一个软件 RAID5 阵列,包含 4 + 1 个磁盘,其中 2 个磁盘发生故障。我希望通过一些冲击式维护,可以让其中一个发生故障的磁盘再次工作足够长的时间,以便进行块级复制以删除映像。

计划是使用 dd 制作 4 个(或全部 5 个)磁盘的映像,然后尝试在这些映像上重建阵列。

我是否错过了什么导致此操作无法完成?如果没有,我该如何操作:

  1. 将每个设备的图像复制到一个文件中
  2. 安装这些
  3. 重新配置 mdadm 以使用这些图像作为设备

显然,有很多事情可能会导致数据损坏,但有理由相信 4 个磁盘上的实际数据可能是完整的:

  1. 第二个磁盘故障可能是由于断电
  2. 我想要恢复的数据不是在第一次故障后写入的

答案1

一般来说,这种方法是可行的。只要你有可用的磁盘(并且你不希望它们发生故障),你也可以使用设备映射器创建覆盖快照而不是完全从磁盘复制数据(不过,将副本作为备份可能是件好事)。

获得映像文件后,你需要为其创建环回块设备

losetup /dev/loopX /path/to/imagefileX

完成此操作后,您可以集合使用环回块设备恢复阵列。如果您无法恢复最新的故障磁盘,那么冗余磁盘映像上的时间戳将与其他磁盘不同,阵列将拒绝组装。只要您真的只对故障前写入的数据感兴趣,看看“恢复失败的软件 RAID”内核 RAID 文档的部分。它应该可以帮助您组装阵列,并且至少恢复部分数据。

相关内容