Posso reconstruir um JBOD?

0

Tenho hardware antigo que falhou anos atrás e ainda tenho 2 HDDs, ambos configurados como JBOD.

Existe uma maneira de despejar essas unidades em um disco rígido e remover / reconstruir o JBOD com o hardware real não mais disponível?

O JBOD foi construído em um chip Promise 20579 - MSI Mainboard K8T Neo para AMD 64.

    
por Timo Schäfer 24.05.2017 / 16:39

1 resposta

0

Há uma chance de seus discos serem concatenados em um grande volume. É a solução mais simples quando se trata de JBOD. Se apenas os caras do hardware seguirem o princípio KISS , você não terá problemas para acessar / despejar os dados com o software de hardware.

No Linux, a ferramenta apropriada é dmsetup , mas se você quiser despejar os discos somente em uma imagem (ou em outro disco), então o simples cat pode ser suficiente.

Investigação

Primeiramente, você precisa conhecer a ordem original dos discos no JBOD. Deve ser fácil identificar o primeiro disco; a parte complicada é pedir o resto deles. No seu caso, onde há dois HDDs, você não deve ter problemas. O primeiro disco tem uma tabela de partição MBR válida ou uma GPT válida (primária, mas não secundária) que descreve as partições em todo JBOD. A menos que você tenha usado seu JBOD sem nenhuma tabela de partições, esse método funcionará. Verifique seus discos com gdisk -l e identifique o primeiro.

Preparação

No meu exemplo, a ordem correta é /dev/sdb , /dev/sdc . Altere as definições de variáveis abaixo para as suas necessidades.

device1=/dev/sdb
device2=/dev/sdc

Dessa forma, você pode usar os comandos Bash que seguem sem nenhuma alteração.

Para despejar os discos em uma imagem, isso deve ser suficiente (nota: a partir de agora você pode precisar de sudo ):

cat $device1 $device2 > image.raw

Mais preparação é necessária se você quiser realmente trabalhar com o JBOD. Você precisa armazenar os tamanhos dos seus dispositivos em setores de 512 bytes. O comando para recuperar o tamanho é como blockdev --getsz /dev/sdX , então

size1='blockdev --getsz $device1'
size2='blockdev --getsz $device2'

Confirme com echo $size1 $size2 se você tem dois números. (Verificação de sanidade: se você multiplicá-los por 512, deverá obter os tamanhos dos seus discos.)

Criação de dispositivo mapeado

Chegou a hora de criar um dispositivo virtual concatenado. O trecho de código a seguir usa a sintaxe aqui documento para facilitar a leitura. Você pode precisar ajustá-lo se não usar o Bash. Por outro lado, com o Bash, ele deve funcionar apenas colando no terminal.

dmsetup create mydevice << EOF
0 $size1 linear $device1 0
$size1 $size2 linear $device2 0
EOF

Nota mydevice é um nome arbitrário. A segunda e terceira linha criam um mapa de dispositivos para dmsetup . Consulte man dmsetup para saber mais.

Agora você deve ter /dev/mapper/mydevice disponível e pronto para uso; é o seu JBOD. (Não tenho 100% de certeza de que toda implementação de dmsetup cria nós em /dev/mapper/ ; no entanto, mydevice deve aparecer em algum lugar.) Trabalhe com ele como em qualquer outro dispositivo.

Montagem

Leia minha outra resposta . Toda a seção Montagem se aplica ao seu caso.

Limpeza

Para destruir /dev/mapper/mydevice :

dmsetup remove /dev/mapper/mydevice

É claro que você deve umount suas partições primeiro.

    
por 24.05.2017 / 20:29

Tags