恢复 Linux RAID 0 超级块

恢复 Linux RAID 0 超级块

因此,我收到了 NAS 中 RAID0(哎呀!)阵列的 2 个驱动器。其中一个驱动器发生故障。原来,该驱动器的控制卡坏了。我所做的就是将信息从好驱动器复制到另一个好驱动器(dd if=/dev/sda of=/dev/sdb),然后将控制卡换到坏驱动器。现在坏驱动器开始旋转,我可以看到上面的数据。

我正在尝试重建阵列,但失败了。出于某种原因,两个驱动器上都没有超级块信息。我不确定为什么会这样。驱动器来自 Iomega Storcenter,所以也许它做了一些奇怪的事情来创建阵列。我尝试像这样重建阵列:

mdadm --assemble --scan

和这个:

mdadm --create /dev/md0 --assume-clean --raid-level=0 --raid-devices=2 /dev/sda4 /dev/sdb4

第二个创建了 RAID,我可以使用十六进制编辑器读取时挑选出某些数据,但文件系统仍然无法挂载。

有人能给我下一步应该尝试什么建议吗?

答案1

您是否尝试通过明确指定所有(或尽可能多的)参数来组装驱动器?

我会尝试 mdadm --assemble /dev/md0 /dev/sda4 /dev/sdb4 - 如果这不起作用,请指定级别和块大小,或者尝试通过 uuid 而不是通过组件。

您也可以尝试 mdadm -E /dev/sda4 和 /dev/sdb4,看看还有多少信息。

我认为 createassuming-clean 仅在非常特殊的情况下有效;请使用原始图像尝试上述操作(无需创建)

答案2

在执行任何其他操作之前,我会使用 dd 将坏驱动器复制到新驱动器。

坏驱动器可能有机械或电子问题,而您使用的实用程序并非为处理这些问题而设计的。我见过的大多数驱动器故障都是快速而剧烈的硬件/电子故障,因此我会立即拔出坏驱动器并将数据复制到新驱动器,然后再做其他事情。每运行一分钟有缺陷的驱动器,数据就更有可能无法恢复,除非对驱动器进行耗时的手术。查看 dmesg 或 /var/log/kernel 以寻找线索。

答案3

突袭重建器。我确信它在过去节省了不少时间。在驱动器副本上运行,它吐出一个我可以对其进行修复的图像。看起来我客户的所有数据都完好无损。这不是一个免费的解决方案,但有时值得为能很好地完成工作的东西付费。

相关内容