Sincronizando unidades dm-crypted?

3

Eu tenho 2 sticks USB, 8 GB cada:

usb1 = /dev/sdb
usb2 = /dev/sdc

usb1 é uma unidade cryed dm completa e atualmente estou usando o usb2 como backup, apenas caso o usb1 falhe. Eu estou clonando usb1 para usb2 usando o seguinte comando:

dd if=/dev/sdb of=/dev/sdc

Isso funciona porque testei o usb2 e tudo parece intacto.

O que não gosto neste método é que leva cerca de uma hora para executar o comando dd.

Depois de ter clonado o usb1 uma vez, é possível manter o usb1 e o usb2 em sincronia sem ter que clonar o disco inteiro usando o dd toda vez que um arquivo de texto é alterado?

Posso usar algo como o rsync para sincronizar 2 sticks usb que são drives totalmente criptografados por dm?

Eu posso dd usb1 para usb2 sem descriptografar usb1. Eu estou esperando que exista uma solução onde eu não tenha que descriptografar usb1 e 2 para sincronizá-los. Eu estou esperando que o programa de sincronização possa descobrir as diferenças em nível binário?

    
por oshirowanen 31.05.2014 / 14:07

3 respostas

4

Os dispositivos de bloco podem ser sincronizados usando o bdsync - uma ferramenta de sincronização rápida de dispositivos de bloco.
bdsync foi criado para faça a única coisa que o rsync não é capaz de fazer: sincronizar dispositivos de bloco.

bdsync "bdsync -s" /dev/LOCDEV /dev/REMDEV > DEV.bdsync  

Isso gera um diff DEV.rsync dos dispositivos / dev / LOCDEV e / dev / REMDEV, ambos locais.

bdsync --patch  DEV.bdsync /dev/DSTDEV  

fará com que os dispositivos sejam sincronizados.

    
por totti 04.06.2014 / 14:08
4

Alternativa: ecryptfs

Você deve usar uma criptografia baseada em arquivo, como ecryptfs, em vez de uma solução de criptografia baseada em bloco nesses casos.

Vantagens:

  • Considerando que você usa a mesma frase secreta para ambos os dispositivos, é possível rsync seus dados mesmo quando o ecryptfs não está montado e salva a descriptografia adicional e a sobrecarga de criptografia.
  • Você grava apenas um pouco mais de dados do que a carga útil, não uma partição ou contêiner inteiro, o que reduz o desgaste das células de memória.

Desvantagens:

  • A criptografia de nome de arquivo limita o comprimento do nome do arquivo, se seus sistemas de arquivos permitirem 255 bytes - como a maioria dos sistemas de arquivos modernos, incluindo FAT e EXT - o limite seria de 143 bytes. Esteja ciente de caracteres multi-byte em nomes de arquivos.

Ouvi dizer que algumas pessoas também usam ecryptfs para serviços on-line como o Dropbox ou o Google Drive.

Uso

O instalador do Ubuntu usa o ecryptfs para configurar a criptografia das pastas base dos usuários, então você pode já ter instalado o pacote ecryptfs-utils . Usar o ecryptfs para mídia externa é muito simples, basta executar o seguinte comando para o ponto de montagem correspondente:

sudo mount -t ecryptfs my_mountpoint/ my_mountpoint/

Isso solicitará as seguintes opções e, finalmente, montará uma camada adicional no mesmo ponto de montagem ou diretório que criptografa e descriptografa seus dados:

Passphrase: 
Select cipher: 
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]: 
Select key bytes: 
 1) 16
 2) 32
 3) 24
Selection [16]: 
Enable plaintext passthrough (y/n) [n]: 
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [0000000000000000]: 
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=0000000000000000
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=0000000000000000
Mounted eCryptfs

Se você usar um gerenciador de senhas, deverá salvar as opções ecryptfs_* resumidas junto com a frase secreta. Certifique-se de ativar a criptografia de nome de arquivo (FNEK significa chave de criptografia de nome de arquivo).

Dicas para usar o ecryptfs

  • Localizando nomes extensos de arquivos

    O comando a seguir deve fornecer uma lista de arquivos com nomes de arquivos com mais de 135 bytes (135 pontos de interrogação, se não me engano) e também funciona para caracteres multibyte.

    LC_ALL=C find . -type f -name '???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????*'
    

    É o 135 porque quando você usa o rsync para transferir arquivos ele cria arquivos temporários com um ponto inicial e 7 caracteres finais ( .<my_original_filename>.abcdef ). Se não puder criar o arquivo temporário, ele irá reclamar e continuar com o próximo arquivo.

  • Trabalhando com nomes de arquivos longos

    Use metadados sempre que possível para incluir todas as informações necessárias ou arquivos zip com nomes de arquivos muito longos.

    • Eu uso o seguinte padrão no puddletag para renomear arquivos:

      $left($num(%track%, 2) - %title%, 130)
      

      É 130 por causa das extensões de nome de arquivo. Ele não funciona atualmente para caracteres multibyte, mas eu arquivei um bug no bugtracker deles. como .flac .

por LiveWireBT 03.06.2014 / 00:09
0

Reconstrua as unidades usando lvm e, em seguida, sincronize-as com o lvmsync. link

    
por brad sanders 03.06.2014 / 02:02