Posso reconstruir um JBOD?

Posso reconstruir um JBOD?

Tenho alguns hardwares antigos que falharam anos atrás e ainda tenho 2 HDDs lá, ambos configurados como JBOD.

Existe uma maneira de despejar essas unidades em um HDD e remover/reconstruir o JBOD sem que o hardware real esteja mais disponível?

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

Responder1

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

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

Investigação

Primeiramente você precisa saber a ordem original dos discos no JBOD. Deve ser fácil identificar o primeiro disco; a parte complicada é ordenar o resto deles. No seu caso, onde existem dois HDDs, você não deverá ter problemas. O primeiro disco possui uma tabela de partição MBR válida ou um GPT válido (primário, mas não secundário) que descreve partições eminteiroJBOD. A menos que você tenha usado seu JBOD sem nenhuma tabela de partição, este método funcionará. Verifique seus discos gdisk -le identifique o primeiro.

Preparação

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

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

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

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

cat "$device1" "$device2" > image.raw

É necessária mais preparação 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"isso que você tem dois números. (Verificação de integridade: se você multiplicá-los por 512, deverá obter os tamanhos dos seus discos.)

Criação de dispositivo mapeado

É hora de criar um dispositivo virtual concatenado. O trecho de código a seguir usaaqui documentosintaxe para legibilidade. Pode ser necessário ajustá-lo se não usar o Bash. Por outro lado, com o Bash 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 linhas criam um mapa de dispositivos para dmsetup. Consulte man dmsetuppara saber mais.

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

Montagem

Lerminha outra resposta. O inteiroMontagemseção se aplica ao seu caso.

Limpeza

Destruir /dev/mapper/mydevice:

dmsetup remove /dev/mapper/mydevice

Claro que você deve umountprimeiro fazer suas partições.

informação relacionada