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.