O que você deseja fazer pode ser feito usando o Mapeador de Dispositivos (a ser configurado via dmsetup(8)
). Se os dados nos dois arquivos são realmente um despejo linear do seu volume, você poderia criar um dispositivo DM composto de vários dispositivos de bloco que você poderia criar a partir dos arquivos de dispositivos de loop, semelhante a isto:
# losetup /dev/loop0 /path/to/Backup-LUN-itmp-lun-0.000
# losetup /dev/loop1 /path/to/Backup-LUN-itmp-lun-0.001
# size1=$(blockdev --getsz /dev/loop0)
# size2=$(blockdev --getsz /dev/loop1)
# dmsetup create my-backup << EOF
0 $size1 linear /dev/loop0 0
$size1 $size2 linear /dev/loop1 0
EOF
Isto lê uma tabela descrevendo seu dispositivo DM a partir de stdin
e cria um dispositivo de bloco chamado /dev/mapper/my-backup
, que você deve ser capaz de usar como qualquer outro dispositivo de bloco.
O formato da tabela é
<start-sector> <length> <target> <target-args>
<start-sector>
e <length>
descrevem início e comprimento (em setores de 512 bytes) de uma parte do seu dispositivo DM, <target>
seria linear
para, bem, montagem linear. Os argumentos para o linear
target são o dispositivo a ser usado eo offset dentro do dispositivo (portanto, se, por exemplo, seu software de backup gravar algum tipo de cabeçalho na frente do dump, você poderá ignorar isso), neste exemplo é 0
que seria apropriado para um despejo bruto.
Assim, o exemplo acima monta o dispositivo my-backup
para que a primeira parte seja mapeada de Backup-LUN-itmp-lun-0.000
(via loop0
) e a segunda parte de Backup-LUN-itmp-lun-0.000
(via loop1
).
Caso seu backup não seja apenas um dump linear (como usar dd
e dividir a saída em vários arquivos), você pode tentar ter sorte com os outros alvos DM.
Editar: O DM mapeia apenas os dispositivos de bloco, não os arquivos, portanto, adicionou a parte losetup
. Com isso, você também pode usar blockdev --getsz
e não precisa se preocupar com tamanhos, como mostra o exemplo.