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

Восстановить файловую систему с поврежденного RAID1

TL; DR Как восстановить ext4 файловая система с поврежденного раздела RAID1?

Моя ситуация

У меня есть отказавший диск, который принадлежал массиву RAID1 на Synology DiskStation, другой потерян. С помощью ddrescue Я скопировал большую часть необходимых данных на новый диск. Таблица разделов сохранилась, однако некоторые блоки, важные для настройки RAID, повреждены.

# fdisk -l /dev/sdd
Disk /dev/sdd: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x0003f44a

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1             256     4980735     2490240   fd  Linux raid autodetect
/dev/sdd2         4980736     9175039     2097152   fd  Linux raid autodetect
/dev/sdd3         9437184  3907024064  1948793440+  fd  Linux raid autodetect

Фактические данные находятся на третьем разделе /dev/sdd3, но mdadm не могу собрать массив.

# mdadm --examine /dev/sdd
/dev/sdd:
   MBR Magic : aa55
Partition[0] :      4980480 sectors at          256 (type fd)
Partition[1] :      4194304 sectors at      4980736 (type fd)
Partition[2] :   3897586881 sectors at      9437184 (type fd)


# mdadm --examine /dev/sdd3
mdadm: No md superblock detected on /dev/sdd3.

В результате я не могу смонтировать раздел. Данные есть, и они распознаются такими инструментами, как foremost.

Я также пробовал использовать extundelete, но это не удается без надлежащего суперблока ext.

# extundelete --superblock /dev/sdd3
extundelete: failed to read-only open device "/dev/sdd3": Error code 2133571347

Вопросы)

Как восстановить файлы и каталоги с поврежденного раздела RAID1?

Есть ли способ воссоздать md superblock, без потери существующих данных?

Можно ли игнорировать части md, рассматривать раздел как поврежденный ext4 раздел и восстановить его таким образом?

Вы можете использовать петлевое монтирование для монтирования раздела в образе диска в качестве устройства. При создании устройства петли вы указываете смещение, которое заставляет устройство петли начинаться в этой точке раздела.

Таким образом вы можете пропустить отсутствующий суперблок MD и запустить устройство цикла с начала раздела ext4 или возможного LVM.

Теперь нам нужно знать размер суперблока MD, чтобы обеспечить правильное смещение при создании устройства петли.

Из Руководство по MD В статье можно увидеть размеры и расположение суперблоков для разных версий МД.

Версии 0.9 и 1.0 имеют суперблок в конце устройства, поэтому файловая система запускается в начале устройства, и ваша команда монтирования должна быть успешной. Итак, ваш RAID Superblock должен быть другой версии.

Версия 1.1 имеет суперблок при запуске устройства, а версия 1.2 имеет суперблок на 4k при запуске устройства.

Однако есть много места, зарезервированного для возможного расширения суперблока в будущем. Один источник сообщает мне, что файловая система запускается через один мегабайт после запуска устройства. В этом случае вы можете попробовать следующие команды:

losetup /dev/loop0 /dev/sdd3 -o 1048576
mount /dev/loop0 /mnt

Первая команда настраивает устройство цикла, которое начинается со смещения в одном мегабайте от /dev/sdd3 начало раздела. Затем это петлевое устройство монтируется под /mnt.

Однако смещение может быть чем-то другим, и, к сожалению, я не смог найти хороший источник того, какие смещения на самом деле могут быть.

Хотя я никогда не пробовал использовать его для файловых систем на основе ext, в прошлом мне удавалось восстанавливать данные с помощью TestDisk в системах Windows.

http://www.cgsecurity.org/wiki/TestDisk

Их сайт специально указывает, что программное обеспечение способно работать с дисками RAID 1 в Linux.