Existem várias opções que dependerão do seu sistema de arquivos, do tamanho e da natureza dos dados.
-
Use
dump
/restore
. Eles são sólidos e permitem fazer backup do arquivo em partes. Embora eu não possa lhe dar o comando exato que você precisará, leia as páginas man dump e restore e procure online por tutoriais que deve lhe dar uma boa idéia de como proceder. -
Se os dados da matriz forem genuinamente estáticos e não forem alterados de um dia para o outro, use
dd
, o que levará um byte para cópia de bytes e oferecerá suporte a deslocamentos. simplesmente forneçaskip=offset
ao ler o dispositivo da matriz original eseek=offset
ao gravar na cópia. Por exemplo:origin$ dd if=/dev/array_device of=/dev/protable_device ibs=512 skip=3 count=1 # travel home... destination$ dd if=/dev/portable_device of=/dev/array_device obs=512 seek=3 count=1
Obviamente, você vai querer copiar mais de 512 bytes a cada viagem, mas você tem a idéia. Mais uma vez, a manpage é razoavelmente boa e será útil. É recomendado que você desmonte sua matriz enquanto faz isso para que nada de novo seja gravado. (Alternativamente, monte como somente leitura).
Você também pode canalizar dd para o bzip2 para minimizar o espaço ocupado:
dd if=/dev/some_device | bzip2 -c >file.gz <file.gz bzip2 -d -c | dd of=/dev/some_device
Eu recomendo que você escreva em um arquivo e use somas de verificação para verificar a integridade.
-
Copie diretórios por vez, mantendo uma lista de verificação dos diretórios transferidos até o momento. Tendo transferido vários TBs dessa maneira, eu acho que isso é surpreendentemente administrável.