Transferindo conteúdo de dispositivos de bloco

4

Para o propósito de backups, eu gostaria de transferir (várias) partições inteiras de disco através de um link ssh. A origem é um dispositivo especial de bloqueio e o destino deve ser um arquivo regular. Ferramentas comuns parecem inadequadas para isso, porém:

  • scp reclamará not a regular file
  • tar tentará recriar inodes de dispositivo no lado de destino
  • rsync diz skipping non-regular file

Minha melhor aposta atualmente é nc sobre um encaminhamento de porta, ou uma cat invocação no lado remoto por partição, o que significa uma entrada de senha por partição, a menos que uma configure chaves públicas. Existe uma solução mais elegante?

O ambiente seria qualquer sistema live Linux razoável. Atualmente eu tenho um wheezy do Debian por aí, mas não deve ser muito específico para isso.

    
por MvG 24.08.2014 / 01:27

2 respostas

8

Você pode canalizar pelo SSH. Exemplo usando dd :

dd bs=1M if=/dev/disk | ssh -C target dd bs=1M of=disk.img

Se a conexão de rede quebrar durante a transferência, você poderá continuar se souber quanto foi copiado. Por exemplo, se você tiver certeza de que pelo menos 1000MiB já foram transferidos (verifique o tamanho do arquivo de disk.img ):

dd bs=1M skip=1000 if=/dev/disk | ssh -C target dd bs=1M seek=1000 of=disk.img

dd é apenas um exemplo, funciona tão bem com outros comandos, desde que trabalhem com pipes.

    
por 24.08.2014 / 02:15
3

Eu instalaria o programa de buffer (se ele ainda não estiver em sua distribuição) se você estiver tentando transferir por meio de um link de ethernet. É como dd, mas muito melhor e mais rápido. Basicamente, ele é programado para fazer leituras e gravações simultâneas usando um buffer de memória compartilhada. Eu costumava usar isso para despejos de fita e economizou cerca de 10% de tempo de transferência. A linha de comando seria:

  buffer -i /dev/disk -m 100m | ssh -C target buffer -o disk.image -m 100m

Existem mais opções disponíveis. O tamanho padrão do bloco é 10K. O acima aloca 100MBytes de memória compartilhada, você pode ter que ajustar este parâmetro ou sua configuração para permitir isso.

AVISO: A transmissão de uma partição ACTIVE dessa maneira será problemática. Portanto, certifique-se de que a partição a ser transmitida NÃO esteja montada.

    
por 24.08.2014 / 06:47