Eu odeio ser o portador de más notícias, mas ...
Q: I'm new to mdadm, did I do everything correctly?
R: Não. Na verdade, você fez praticamente tudo da maneira mais destrutiva possível. Você usou --create
para destruir os metadados da matriz, em vez de usar --assemble
, o que provavelmente permitiria que você lesse os dados (pelo menos, na medida em que o disco fosse capaz de fazer isso). Ao fazer isso, você perdeu metadados críticos (em particular, a ordem de disco, o deslocamento de dados e o tamanho do bloco).
Além disso, --create
pode ter metadados de matriz rabiscados sobre estruturas críticas do sistema de arquivos.
Finalmente, na sua etapa (3), vejo que o mdadm está reclamando de RAID1 em ambos os discos - espero que seja de você tentando (2) em ambos os discos, individualmente. Eu sinceramente espero que você não deixe o RAID1 começar a tentar sincronizar os discos (digamos, você adicionou ambos ao mesmo array RAID1).
O que fazer agora
Parece que você finalmente criou imagens das unidades. Você deveria ter feito isso primeiro , pelo menos antes de tentar qualquer coisa além de um --assemble
básico. Mas de qualquer maneira,
-
Se a imagem do disco rígido perdeu a maioria / todos os setores, determine se a recuperação de dados profissional vale a pena. Os arquivos (e os metadados do sistema de arquivos) são divididos em unidades no RAID0, portanto, você realmente precisa recuperar ambos. A recuperação profissional provavelmente será capaz de ler a unidade.
-
Se a imagem estiver boa, exceto em alguns setores, continue.
Faça uma cópia dos arquivos de imagem. Trabalhe apenas nas cópias dos arquivos de imagem. Eu não posso enfatizar isso o suficiente, você provavelmente estará destruindo essas cópias várias vezes, você precisa ser capaz de começar de novo. E você não quer ter que fazer a imagem dos discos novamente, especialmente porque um está falhando!
Para responder a uma das suas outras perguntas:
Q: Why I cannot use the partition images to create an array?
R: Para montar (ou criar) uma matriz de arquivos de imagem, você precisa usar um dispositivo de loopback. Você anexa uma imagem a um dispositivo de loopback usando losetup
. Leia a manpage, mas será algo como losetup --show -f /path/to/COPY-of-image
. Agora, você usa mdadm
nos dispositivos de loop (por exemplo, /dev/loop0
).
Determine o layout da matriz original
Você precisa descobrir todas as opções mdadm que foram originalmente usadas para criar a matriz (desde que você destruiu os metadados com --create
anterior). Você então executa --create
nos dois dispositivos de loopback, exatamente com essas opções. Você precisa descobrir a versão de metadados ( -e
), o nível de RAID ( -l
, parece ser 0), o tamanho do bloco ( -c
), número de dispositivos ( -n
, deve ser 2) e a ordem exata dos dispositivos.
A maneira mais fácil de obter isso é obter dois novos discos, colocá-los no NAS e fazer com que o NAS crie um novo array neles. De preferência com a mesma versão de firmware do NAS usada originalmente. IOW, repita a configuração inicial. Em seguida, retire os discos e use mdadm -E
em um dos membros. Aqui está um exemplo de um array RAID10, tão ligeiramente diferente. Omiti um monte de linhas para destacar as que você precisa:
Version : 1.0 # -e
Raid Level : raid10 # -l
Raid Devices : 4 # -n
Chunk Size : 512K # -c
Device Role : Active device 0 # gets you the device order
Array State : AAAA ('A' == active, '.' == missing)
NOTA: Suponho que você esteja usando o ext2 / 3/4 aqui; se não, use os utilitários apropriados para o sistema de arquivos que o NAS realmente usou.
Tente criar (nos dispositivos de loopback) com essas opções. Veja se e2fsck -n
o reconhece. Caso contrário, pare a matriz e crie-a novamente com os dispositivos na outra ordem. Tente e2fsck -n
novamente.
Se nenhum dos dois funcionar, você deve voltar para a ordem que considera adequada e tentar um superbloco de backup. O e2fsck
manpage informa qual número usar; você quase certamente tem um tamanho de 4K. Se nenhum dos superblocos de backup funcionar, pare a matriz e tente a outra ordem de disco. Se isso não funcionar, você provavelmente tem as opções --create
erradas; recomeçar com nova cópia das imagens & Experimente algumas opções diferentes: tentei versões de metadados diferentes primeiro.
Depois de executar o e2fsck, veja o quanto o sistema de arquivos está danificado. Se estiver completamente destruído, isso pode significar que você tem o tamanho errado do pedaço (pare e recrie o array para tentar um pouco mais).
Copie os dados para fora.
Eu sugiro deixar o e2fsck tentar consertar o sistema de arquivos. Isso arrisca destruir o sistema de arquivos, mas, bem, é por isso que você está trabalhando em cópias! Então você pode montá-lo e copiar os dados. Tenha em mente que alguns dos dados provavelmente estão corrompidos e que a corrupção pode estar oculta (por exemplo, uma página de um documento poderia ter sido substituída por NULLs).
Não consigo obter os parâmetros originais do NAS
Então você está em apuros. Sua outra opção é adivinhar até que finalmente funcione, ou aprender o suficiente sobre os formatos em disco para descobrir isso usando um editor hexadecimal. Pode haver um utilitário ou dois lá fora para ajudar com isso; Não sei.
Como alternativa, contrate uma empresa de recuperação de dados.