Recuperar o Orphaned RAID 0 do controlador Silicon Image com o Linux Software RAID?

1

Eu tinha uma máquina XP antiga no Raid0, 2 unidades de 120gb em Sil3112 controller . As unidades estão intactas (afaik), mas a placa-mãe ou P4 é torrada.

Adoro recuperar fotos preciosas da unidade ou despejar todo o conteúdo em um disco externo. Eu estou começando a entender que o Ubuntu pode ser capaz de reconstruir o array em um sistema moderno para que eu possa recuperar os dados usando o liveCD. Está correto?

Se for o caso, preciso de uma máquina com portas / controladores Raid etc., ou preciso apenas de uma placa com conexões sata regulares. Muito obrigado antecipadamente por qualquer assistência neste tópico.

    
por user220310 28.11.2013 / 23:36

2 respostas

1

Tive praticamente o mesmo problema com um controlador "falso RAID" it8212 e alguns discos no RAID0. Surpreendentemente, o mdadm poderia resolver o problema, com um pouco de tentativa e erro, no entanto. Se você sabe / lembra o chunksize (o quantum de cada disco paralelo de leitura / gravação para cada disco), você pode tentar algo parecido com isso ( não tente ainda ):

 sudo mdadm --build --verbose --run --chunk=64 /dev/md0 --level=raid0 --raid-devices=2 /dev/sde /dev/sdd

Se / dev / md0 já estiver ocupado, sinta-se à vontade para usar números incrementais em vez de 0. Claro, / dev / sde e / dev / sdd onde os discos no meu caso, e 64k foi meu chunksize, mas você pode facilmente determinar sua própria configuração com:      sudo fdisk -l

Isto lista todas as partições de todos os seus discos físicos. Aqueles dois que nos interessam devem ser exatamente idênticos em tamanho, cilindros, setores, etc. Além disso, uma vez que a ordenação de parâmetros definitivamente importa, o primeiro (no lugar do meu / dev / sde) deve ter uma tabela de partições (ou uma parte delas, se você tivesse usado partições estendidas), e a segunda (minha / dev / sdd) parece estar totalmente corrompido. Tenha cuidado para não tocar em seus outros discos não-raid, embora :-) OTAH, se ambos parecem inválidos, você pode parar de ler esta resposta, não vai funcionar para você: - (

O uso de --build (em vez de --create) tem a vantagem de ignorar a criação de informações de superblocos, evitando o risco de apagar dados e, o mais importante, iniciar dados reais do setor 0, criando assim o chamado "legado". "assembly, que é o que a maioria dos fornecedores de chipsets" fake raid "faria (suposição educada: suas informações de superblocos são escritas na memória NV do chipset, portanto, elas realmente não precisam gravar nenhum metadado nos discos).

Agora, se você não se lembra do tamanho original do bloco, a tentativa e o erro são necessários ... Tente construir com um tamanho de bloco diferente a cada vez, em seguida, use fdisk -l em / dev / md0 explicitamente e veja se as informações da partição são exibidas corretamente. Nesse caso, tente montar uma das partições descobertas como somente leitura e verifique alguns dados (preferencialmente texto), para ter certeza. Se não, desfaça. Para desfazer o desenvolvimento do mdadm e disponibilizar o disco novamente, use     %código%      e     %código% Em seguida, tente novamente, com tamanho de bloco diferente.

Embora a montagem seja suficiente (a capacidade de montar partições corrompidas é extremamente rara), aqui está um truque um pouco mais avançado para verificar o tamanho correto do pedaço, procurando por uma string de identificador de partição. Espero que, em uma tabela de partição válida, os setores iniciais de uma ou mais partições reconhecíveis sejam descritos. Mais uma vez, no meu caso:

 /dev/sde1   *          63    47118644    23559291    7  HPFS/NTFS/exFAT
 /dev/sde2        47118645   102896324    27888840    7  HPFS/NTFS/exFAT
 /dev/sde4       102896325   980463014   438783345    5  Extended

Em quase todos os casos, você pode encontrar cadeias de identificadores próximas ao início de cada tipo de partição. ie. 'NTFS' em si, no caso de NTFS. Usando dd, copie os primeiros poucos setores do disco (/ dev / md0), para um arquivo.

 sudo dd if=/dev/md0 of=testfile bs=1024 count=256 skip=0

Isso deve copiar o primeiro (skip = 0) 256K de dados do disco para 'testfile'. Agora, usando algo como:

strings -a -t d testfile | grep NTFS

ou x em vez de d se você preferir hexadecimal ou, mais simplesmente,

hexdump -C testfile | less

depois, pesquise com '/'

e você pode encontrar a posição da string no disco inteiro. Compare isso com o deslocamento de partição calculado. Por exemplo, no meu caso, a primeira partição ntfs começou no 63º setor, o que leva a um deslocamento de 63 * 512 = 32256. A string 'NTFS' foi encontrada no lugar 32259, então consideramos isso 'uma correspondência' (3 bytes postar o começo). (Não se esqueça de adicionar skip * bs ao seu cálculo, se algum salto não-zero for usado no dd). Infelizmente, um jogo não significa necessariamente que é o tamanho correto do pedaço, enquanto uma incompatibilidade significaria que certamente não é.

    
por trollercoaster 08.01.2016 / 01:49
0

Até onde sei, você não pode fazer isso com mdadm / Linux Software RAID já que os únicos formatos de metadados estrangeiros suportados são Intel (R) Gerenciador de armazenamento em matriz e DDF .

Você precisa obter uma placa-mãe exata ou similar ou um controlador com o mesmo chip (e provavelmente firmware) e ser extremamente cauteloso ao "importar" as unidades ou seus dados serão perdidos.

Eu estive lá há muito tempo atrás com chips da Silicon Image e percebi o quão ruim é essa solução (você deve sempre ter um controlador de reserva exato pronto para o caso de algo ruim acontecer).

Suporte a RAID falso

Os artigos sobre dmraid / Fake RAID da Documentação da Comunidade Ubuntu e o Arch Linux Wiki pode ser útil para você.

RAID de software Linux vs RAID falso

Trecho do Linux Raid Wiki no falso RAID :

  

Sistemas RAID de hardware apropriados são apresentados ao Linux como um dispositivo de bloco [...]

     

Cartões RAID de firmware / RAID BIOS / firmware:

     
  • [...]
  •   
  • se a placa 'raid' ou a placa-mãe morrer, você terá que encontrar uma substituição exata, e isso pode ser complicado para cartões mais antigos
  •   
  • se as unidades forem movidas para outras máquinas, os dados não poderão ser lidos facilmente
  •   
  • geralmente não há monitoramento ou relatório na matriz - se ocorrer um problema, talvez não seja mostrado a menos que a máquina seja reinicializada    e alguém está realmente assistindo a tela de inicialização do BIOS (ou até que vários erros ocorram e seus dados sejam perdidos)
  •   
  • você está confiando seus dados a um software não passível de acesso escrito em um BIOS que provavelmente não foi testado, não tem mecanismo de suporte e   quase sem comunidade.
  •   
  • [...]
  •   

Dado o ponto de RAID é geralmente reduzir o risco, é justo dizer   que usar o fakeraid é uma ideia terrível e é melhor focar a energia   em raids HW verdadeiros ou raids SW no kernel [...]

    
por LiveWireBT 29.11.2013 / 02:33