Можно ли восстановить / конвертировать / монтировать файлы образов 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