Можно ли восстановить / конвертировать / монтировать файлы образов fakeraid? (TL;DR - иметь поддельные изображения, хотите конвертировать их в изображения mdadm)

Мой Promise NAS NS4300N недавно умер (сбой блока питания или материнской платы, возможно, из-за проблем с раскруткой дисков).

Мне удалось преобразовать диски (1) (4 500 ГБ в конфигурации RAID5) в образы на новом сервере, хотя на одном из дисков было несколько ошибок чтения (conv=noerror ftw...).

Однако, поскольку Promise NAS не использует mdadm(8) для RAID, а вместо этого использует "аппаратный" RAID (он же FakeRAID), получающиеся образы выглядят так:

$ fdisk -l /local/media/promise.dd.1
Disk /local/media/promise.dd.1: 465.8 GiB, 500106174464 bytes, 976769872 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0xb95a0900

Device                      Boot Start        End    Sectors  Size Id Type 
/local/media/promise.dd.1p1         63 2929918634 2929918572  1.4T 83 Linux

$ fdisk -l /local/media/promise.dd.2 
Disk /local/media/promise.dd.2: 465.8 GiB, 500107862016 bytes, 976773168 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

$ fdisk -l /local/media/promise.dd.3 
Disk /local/media/promise.dd.3: 465.8 GiB, 500107862016 bytes, 976773168 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

$ fdisk -l /local/media/promise.dd.4 
Disk /local/media/promise.dd.4: 465.8 GiB, 500107862016 bytes, 976773168 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos
Disk identifier: 0xb95a0900

Device                      Boot Start        End    Sectors  Size Id Type 
/local/media/promise.dd.4p1         63 2929918634 2929918572  1.4T 83 Linux

Когда монтируются как устройства loop(4), изображения выглядят так:

$ sudo lsblk -io NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL 
NAME               FSTYPE                            SIZE    MOUNTPOINT     LABEL 
..     
loop0              promise_fasttrack_raid_member     465.8G
loop1              promise_fasttrack_raid_member     465.8G
loop2              promise_fasttrack_raid_member     465.8G
loop3              promise_fasttrack_raid_member     465.8G

Неудивительно, что mdadm(8) не может прочитать их, так как не может найти пригодный для использования суперблок:

$ sudo mdadm --verbose --examine /dev/loop0
/dev/loop0:
   MBR Magic : aa55
Partition[0] :   2929918572 sectors at           63 (type 83)
$ sudo mdadm --verbose --examine /dev/loop1
mdadm: No md superblock detected on /dev/loop1.

И конечно:

$ sudo mdadm --verbose -A /dev/md127 --readonly --run /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4
mdadm: looking for devices for /dev/md127
mdadm: no recogniseable superblock on /dev/loop1
mdadm: /dev/loop1 has no superblock - assembly aborted

Я подумал, что мог бы попытаться прочитать / изучить их, используя dmraid(8), поскольку это рекламируется как инструмент для "обнаружения, настройки и активации программного обеспечения (ATA) RAID". Но, насколько я могу судить, это утверждение верно только в том случае, если диски открыты через BIOS, а это явно не так, поскольку они являются устройствами loop(4):

$ sudo dmraid -ay
no raid disks

Есть ли у меня шанс восстановить данные с помощью программного обеспечения? Или мой единственный вариант - найти оборудование, способное считывать данные с физических дисков (например, карты Promise PCI)?

Спасибо за прочтение.

1 ответ

Я оказался в такой же ситуации. Мне удалось восстановить данные, используя демо-версию R-Studio для реконструкции виртуального RAID-массива, в основном, как описано здесь:

https://www.r-studio.com/automatic-raid-detection.html

В меню «Диск» выберите «Открыть образ» и импортируйте образы дисков, ранее созданные с помощьюdd.

В раскрывающемся меню «Создать виртуальный RAID» выберите «Создать виртуальный RAID и автоопределение», затем перетащите открытые файлы образа диска из древовидного представления (слева) на панель списка устройств виртуального RAID (вверху справа). .

Нажмите «Автоопределение». Процесс должен завершиться через несколько секунд. В моем случае он обнаружил размер блока 32 КБ, RAID5, левая асинхронная (непрерывная) с достоверностью 50,2%. Он также отображал схему массива RAID 5 из учебника. Нажмите «Применить».

Вернувшись в дерево «Представление устройств», теперь должны быть разделы и группы томов (например: «vg002-lv001») с файловой системой ext3. Выберите эту запись и нажмите кнопку «Создать изображение».

В появившемся диалоговом окне выберите «Побайтовое изображение», выберите подходящий путь и имя файла. Нажмите «ОК» и подождите ночь, пока процесс завершится. Убедитесь, что у вас достаточно места для полученного изображения. (Для 4 дисков по 500 ГБ в RAID5 это будет примерно 1,5 ТБ.)

Полученный файл изображения можно смонтировать в цикле для доступа к данным. Например

      # mkdir /mnt/promise
# mount -o loop vg002-lv001.img /mnt/promise/

Мне также показалось удобным переназначить UID и GID перед запуском rsync для копирования данных:

      # mkdir /mnt/promise-bindfs
# bindfs --map=1001/1000:@499/@100 /mnt/promise /mnt/promise-bindfs
Другие вопросы по тегам