Назад | Перейти на главную страницу

Восстановление данных из сбойного и, возможно, частично перезаписанного mdadm raid1

У меня неисправный жесткий диск (назовем его sda), который, помимо прочего, содержит раздел размером 1,5 ТБ (назовем его sda3). Есть еще один диск (sdb), который имеет раздел 1,5 ТБ (sdb1) также. Оба раньше были частью RAID уровня 1 mdadm с использованием метаданных версии 1.2. Внутри этого раздела RAID (назовем id md5), есть контейнер шифрования LUKS (назовем его md5_uncrypted). Этот контейнер должен содержать раздел ext4.

Примерно 10 августа 2012 г. я каким-то образом перезапустил RAID-массив с помощью sdb1 пропал без вести и даже не заметил этого. Когда вчера (три месяца спустя) я хотел заменить RAID, я начал копировать данные из sdb1 пока не понял, что он устарел. Поэтому я взглянул на старую sda3. По ошибке я сбежал mdadm --create вместо того mdadm --assemble начать заново md5 только с sda3 доступный. Соответственно, я проигнорировал все предупреждения и позволил mdadm --create Продолжать. cryptsetup не понравилось содержание нового RAID. Я действительно не думал mdadm --create приведет к повреждению данных при использовании той же версии метаданных? Ну, видимо, так и было.

Я сравнил первые 20 МБ sda3 и sdb1 и заметил, что они равны начиная примерно с 8 МБ. Итак, я скопировал первые 8 МБ sdb1 к sda3 (У меня есть резервная копия старых первых 20 МБ sda3) и попробовал собрать md5 (только с одним приводом, sda3). К сожалению, это дало мне ошибку:

failed to add /dev/sdb1: Invalid argument

Я также пробовал использовать заголовок LUKS из sdb1 на недавно mdadm --created sda3, который cryptsetup с радостью сделал (конечно), но там был мусор.

У меня вопрос: есть ли шанс восстановить хотя бы часть данных из sda3? Поскольку у меня состояние трехмесячной давности, все помогает, даже просто список файлов или список файлов с датами модификации.

Редактировать:

# mdadm --examine /dev/sdb1
         Magic : a92b4efc
       Version : 1.2
   Feature Map : 0x0
    Array UUID : 76a25475:70aa881c:dd30cc93:bbae03b7
          Name : ubuntu:0
 Creation Time : Fri Mar 16 20:52:16 2012
    Raid Level : raid1
  Raid Devices : 2

Avail Dev Size : 2930272256 (1397.26 GiB 1500.30 GB)
    Array Size : 1465129848 (1397.26 GiB 1500.29 GB)
 Used Dev Size : 2930259696 (1397.26 GiB 1500.29 GB)
   Data Offset : 2048 sectors
  Super Offset : 8 sectors
         State : clean
   Device UUID : b9012482:afa502cf:7794f4fb:2a0da196

   Update Time : Wed Nov 21 20:51:51 2012
      Checksum : 4e54a07 - correct
        Events : 15003


  Device Role : Active device 1
  Array State : .A ('A' == active, '.' == missing)

# mdadm --examine /dev/sda3
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 54ea031e:42367512:b6a8675b:91f2cb6f
           Name : willow:5  (local to host willow)
  Creation Time : Wed Nov 21 18:03:35 2012
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 2929999872 (1397.13 GiB 1500.16 GB)
     Array Size : 1464999744 (1397.13 GiB 1500.16 GB)
  Used Dev Size : 2929999488 (1397.13 GiB 1500.16 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : 93c70c36:3cc540a5:13817695:bd4f327c

    Update Time : Wed Nov 21 18:03:35 2012
       Checksum : 321ddb3e - correct
         Events : 0


   Device Role : Active device 1
   Array State : .A ('A' == active, '.' == missing)

Во-первых, если у вас есть запасной жесткий диск, я бы настоятельно рекомендовал зеркалировать sda3 и просто работать с зеркалом.

mdadm --create с теми же параметрами не должен повреждать данные, если значения по умолчанию для неопределенных параметров не изменяются между версией, которая изначально создавала массив, и текущей версией.

Вы сравнивали суперблоки на sdb1 и sda3 с mdadm --examine?

Если вы не добавили / не изменили / не удалили ключи, заголовок luks должен быть идентичным. Вы пробовали восстановить luksHeaderBackup из массива sdb1 в созданный массив на sda3?

Различные смещения заголовка luks {'L', 'U', 'K', 'S', 0xba, 0xbe} на sdb1 и sda3 объясняют мусор в объеме luks.