Recuperei totalmente os dados do meu colega na mesma situação (placa-mãe morta). A ferramenta foi dmsetup
no Linux. Se você não tiver o Linux instalado, use o LiveCD, por exemplo. Knoppix.
Não sei se você está familiarizado com o Linux ou não. Minha resposta não cobrirá todos os fundamentos "óbvios" que você pode precisar (como mkdir
ou sudo
), então se você é um novato em Linux, aprenda, pergunte nos comentários, etc.
Aqui, presumo que suas duas unidades são /dev/sda
e /dev/sdb
. Remapear meu exemplo para seus valores reais.
Investigando mais
Como você sabe que 256 setores são iguais a 128 KiB, o tamanho do setor é 512 B. Você precisa saber quantos setores existem em cada disco. Você disse que sabe a ordem dos discos; isso não significa necessariamente que você saberá qual dispositivo será /dev/sda
quando seu Linux iniciar. Invoque um por um:
gdisk -l /dev/sda
gdisk -l /dev/sdb
Um desses comandos deve mostrar uma tabela de partições sã, indicando o primeiro dispositivo em sua matriz (esse conhecimento será útil mais tarde). Ignore avisos, se houver. Cada comando mostrará também o número de setores para o respectivo disco. Esses dois números podem ou não ser iguais. Se forem iguais, multiplique o número por 2 (em geral: pelo número de discos); se eles não forem iguais, obtenha o número mais baixo e multiplique por 2. O resultado é um número máximo de setores que o RAID0 pode utilizar. Vamos chamá-lo N .
Mas! Sua matriz deve ter 256 setores de um disco seguido por 256 setores do outro e assim por diante, número igual deles. Portanto, o número de setores em sua matriz deve ser divisível por 512. N pode não ser divisível, então você deve escolher o número inteiro não maior mais próximo que é divisível por 512. Trabalhar com calculadora ou por exemplo bash (substitua "N" pelo seu número real):
M=$((N/512*512))
echo $M
Este é o número mais provável de setores em sua matriz. O mais importante agora: esse é o número válido, mesmo que por algum motivo o número real seja menor que isso.
Criando dispositivo mapeado
O seguinte comando deve ser quase o correto para você:
echo "0 $M striped 2 256 /dev/sda 0 /dev/sdb 0" | dmsetup create mydevice
Eu escrevi "quase" porque há poucas coisas para ajustar:
- substitua
$M
com seu valor adequado manualmente se você usou a calculadora em vez da aritmética de shell; - altere a ordem e os nomes dos dispositivos para se adequarem ao seu caso;
- provavelmente você precisará de
sudo
para executardmsetup
.
O argumento para echo
é o mapa do seu dispositivo, mydevice
é um nome arbitrário. O mapa indica (em ordem) que o novo fragmento de dispositivo começando com 0
-th setor e cobrindo $M
setores é stripped
, criado com 2
dispositivos com tamanho de distribuição 256
setores, os dispositivos (em ordem) são /dev/sda
(a partir do seu 0
-th sector) e /dev/sdb
(também a partir do seu 0
-th sector).
Agora você deve ter /dev/mapper/mydevice
disponível e pronto para uso. (Não tenho 100% de certeza de que toda implementação de dmsetup
crie nós em /dev/mapper/
; mydevice
deve aparecer em algum lugar.)
Montagem
Verifique a tabela de partições que deve ser sensata e faz sentido:
gdisk -l /dev/mapper/mydevice
Se houver MBR, não GPT, você poderá receber um aviso sobre a tabela de partição secundária sobrepondo a última partição. Isso ocorre porque gdisk
está pronto para escrever GPT. Você não precisa fazer isso e não vai. Ignore o aviso, se houver. Não há nada para se preocupar a menos que você já tenha GPT e a sobreposição ocorra.
Eu vi pessoas usando dmsetup
ou kpartx
para criar um nó associado a uma partição que desejam montar. Ou mesmo dd
para "extrair" uma partição e montar o arquivo resultante. Nenhum destes é necessário. Atualmente, você pode usar mount
de uma partição dentro do dispositivo inteiro, graças à opção offset
. Por exemplo. se a partição que você precisa montar começa no setor 63. (valor comum para a partição do sistema Windows XP), você monta assim:
mount -o offset=$((512*63)),ro /dev/mapper/mydevice /mnt/foo
É altamente recomendável montar somente leitura ( -o ro
) no início (ou em todos os casos, se você quiser apenas obter dados). Se o software que você usou tiver algo errado ou se eu cometer algum erro com algum comando, você poderá corromper seus dados, a menos que você monte somente leitura. Este é um bom motivo para usar a opção ro
, pelo menos até você vagar pelo sistema de arquivos, ler alguns arquivos (ex. Reproduzir mp3
-s e avi
-s, ler pdf
-s, exibir jpg
-s etc.) e confirma que tudo parece em ordem.
Limpeza
Para destruir /dev/mapper/mydevice
:
dmsetup remove /dev/mapper/mydevice
É claro que você deve umount
suas partições primeiro.