克隆 md 分区以进行恢复

克隆 md 分区以进行恢复

我有一个失败的软件 RAID5(3x500GB 磁盘),我正在尝试恢复它。我不想在实际磁盘上尝试一些更危险的步骤,所以我想将它们克隆到新的 3TB 磁盘上的新分区。我用 gparted 创建了 3 个 500GB 分区,然后使用:

dd if=/dev/sdc1 of=/dev/sdb1
dd if=/dev/sdd1 of=/dev/sdb2
dd if=/dev/sde1 of=/dev/sdb3

将每个 md 分区克隆到其中。但 mdadm 无法在新克隆的分区上看到超级块。我应该如何克隆它们,以便在 mdadm 中使用它们来尝试恢复我的数据?

如果我尝试激活该阵列,我目前会在 /proc/mdstat 中得到以下内容:

Personalities :
md0 : inactive sdc1[0](S) sde1[2](S) sdd1[1](S)
      1465151808 blocks

unused devices: <none>

更多信息,来自 fdisk(因为我使用 gparted 创建了它们,所以为了安全起见,我把目标分区做得稍微大一些):

Disk /dev/sdc1: 500.1 GB, 500105217024 bytes
Disk /dev/sdd1: 500.1 GB, 500105217024 bytes
Disk /dev/sde1: 500.1 GB, 500105217024 bytes
Disk /dev/sdb1: 500.2 GB, 500170752000 bytes
Disk /dev/sdb2: 500.2 GB, 500170752000 bytes
Disk /dev/sdb3: 500.2 GB, 500170752000 bytes

最后,对每个分区进行 mdadm --examine:

$ sudo mdadm --examine /dev/sdb{1,2,3}
mdadm: No md superblock detected on /dev/sdb1.
mdadm: No md superblock detected on /dev/sdb2.
mdadm: No md superblock detected on /dev/sdb3.
$ sudo mdadm --examine /dev/sd{c,d,e}1
/dev/sdc1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : f8d0c619:9f54ad08:bd0b98c0:101144a1
  Creation Time : Sun Jul 18 01:56:33 2010
     Raid Level : raid5
  Used Dev Size : 488383936 (465.76 GiB 500.11 GB)
     Array Size : 976767872 (931.52 GiB 1000.21 GB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 0

    Update Time : Sat Sep 27 13:59:35 2014
          State : clean
 Active Devices : 1
Working Devices : 1
 Failed Devices : 2
  Spare Devices : 0
       Checksum : cbf4174b - correct
         Events : 5983

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     0       8       17        0      active sync   /dev/sdb1

   0     0       8       17        0      active sync   /dev/sdb1
   1     1       0        0        1      faulty removed
   2     2       0        0        2      faulty removed
/dev/sdd1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : f8d0c619:9f54ad08:bd0b98c0:101144a1
  Creation Time : Sun Jul 18 01:56:33 2010
     Raid Level : raid5
  Used Dev Size : 488383936 (465.76 GiB 500.11 GB)
     Array Size : 976767872 (931.52 GiB 1000.21 GB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 0

    Update Time : Sat Sep 27 08:00:42 2014
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
       Checksum : cbf3c2d6 - correct
         Events : 5940

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     1       8       33        1      active sync   /dev/sdc1

   0     0       8       17        0      active sync   /dev/sdb1
   1     1       8       33        1      active sync   /dev/sdc1
   2     2       8       49        2      active sync   /dev/sdd1
/dev/sde1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : f8d0c619:9f54ad08:bd0b98c0:101144a1
  Creation Time : Sun Jul 18 01:56:33 2010
     Raid Level : raid5
  Used Dev Size : 488383936 (465.76 GiB 500.11 GB)
     Array Size : 976767872 (931.52 GiB 1000.21 GB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 0

    Update Time : Sat Sep 27 08:00:42 2014
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
       Checksum : cbf3c2e8 - correct
         Events : 5940

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     2       8       49        2      active sync   /dev/sdd1

   0     0       8       17        0      active sync   /dev/sdb1
   1     1       8       33        1      active sync   /dev/sdc1
   2     2       8       49        2      active sync   /dev/sdd1

答案1

啊,你使用的是 0.90 元数据。它存储在给定偏移量处结尾设备,因此如果您将数据复制到更大的设备,则 mdadm 将无法找到元数据(因为它不在预期的末尾)。

我建议您将新分区的大小调整为与原始分区完全相同,并且应该可以找到元数据(无需重新复制数据,只要您不移动分区的开头)。

附加说明:向 dd 添加选项 bs=1024k 可以使其运行速度更快。

相关内容