Meu NAS NS4300N da Promise morreu recentemente (falha na PSU ou na placa-mãe, provavelmente a primeira, pois tem problemas para girar os discos).
Eu consegui dd (1) as unidades (4 unidades de 500GB em uma configuração RAID5) como imagens em um novo servidor, mesmo que uma das unidades tivesse alguns erros de leitura (conv = noerror ftw ... ).
No entanto, como o Promise NAS não usa mdadm (8) para RAID, mas usa o RAID "hardware" (também conhecido como FakeRAID), as imagens resultantes ficam assim:
$ 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
Quando montados como dispositivos loop (4), as imagens ficam assim:
$ 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
Não é novidade que mdadm (8) não consegue lê-los, pois não consegue encontrar um superbloco utilizável:
$ 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.
E claro:
$ 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
Eu pensei em tentar ler / examinar estes usando dmraid (8), já que isso é anunciado como uma ferramenta para "descobrir, configurar e ativar o RAID de software (ATA)" . Mas até onde eu posso dizer, essa afirmação só é verdadeira se as unidades forem expostas através da BIOS, o que elas claramente não são, sendo que elas são dispositivos loop (4):
$ sudo dmraid -ay
no raid disks
Eu tenho alguma chance de recuperar os dados via software? Ou a minha única opção é encontrar hardware que possa ler unidades físicas com os dados nelas (por exemplo, uma placa Promise PCI)?
Obrigado pela leitura.
Tags raid linux software-raid fakeraid