Backups Incrementais de Imagens ntfsclone

2

Eu estou tentando fazer backups incrementais compactados de uma partição do Windows usando o ntfsclone no Linux. Atualmente, estou fazendo imagens ntfsclone completas usando algo como o seguinte comando:

sudo ntfsclone -s -t -o - /dev/sda2 | xz -zc > new-backup.ntfsclone.xz

O que eu gostaria de fazer é executar backups incrementais criando um arquivo delta usando o backup anterior e o fluxo de saída ntfsclone em vez de criar uma nova imagem ntfsclone em cada sessão de backup.

Eu entendo que criar diffs de binários não é fácil, e que várias ferramentas (rdiff, xdelta, bsdiff, etc.) existem para este propósito; no entanto, todos eles exigem que os dois arquivos de origem estejam presentes no disco e não podem comparar dados diretamente dos fluxos de saída.

Em outras palavras, existem soluções para fluxos binários que fazem algo como o seguinte comando?

diff -u <(xz -dc old-backup.ntfsclone.xz) \
<(sudo ntfsclone -s -t -o - /dev/sda2) \
| xz -zvc > new-backup.ntfsclone.delta.xz

Obviamente, o comando acima não funciona, mas eu gostaria de poder descompactar a imagem antiga, compará-la a uma representação ntfsclone da partição do Windows e criar uma imagem delta compactada a partir da comparação em uma única etapa. .

Algumas condições são:

  • O processo deve usar ntfsclone
  • Os deltas devem ser patchable diretamente para o disco
  • De preferência, tudo acontece em uma única etapa

Também é possível (e pode ser preferível) criar um arquivo delta restaurando a imagem do ntfsclone para pipe e criando um diff comparando diretamente com /dev/sda2 , já que isso provavelmente criaria um arquivo de saída menor, mas fazendo isso complicaria a filtragem do espaço em disco não alocado.

(Ou seja, teríamos que zerar o espaço em disco não utilizado ou fazer algo como diff -u <(xz -dc old-backup.ntfsclone.xz | ntfsclone -r -t -o - -) <(sudo ntfsclone -t -o - /dev/sda2) | xz -zc > new-backup.img.delta.xz para evitar o arquivamento de todos os dados do arquivo excluído. Eca!)

Algum comprador?

NOTA: Uma ferramenta chamada ntfsddup por O Wei Dong existe para realizar quase exatamente isso, mas eu estou tendo dificuldade em conseguir que a coisa danada funcione. O software está em muito estágios iniciais e precisa de muito trabalho.

por user339676 29.06.2014 / 11:13

1 resposta

2

Eu usei com sucesso uma ferramenta chamada bup (baseada no git) que pode armazenar com eficiência binários grandes que diferem apenas ligeiramente. Também funciona muito bem com o nfs, o que é conveniente para mim porque tenho um servidor nfs com muito espaço onde guardo dados:

por exemplo, para fazer backup de imagens ntfs do meu laptop (diaz)

export BUP_DIR=/mnt/t3/big1/diaz/ntfsbup
ntfsclone -s -o - /dev/sda2 | bup split -n sda2.img

para restaurar (para uma unidade diferente):

bup join sda2.img | ntfsclone -r -O /dev/sdb9 -

ou uma versão anterior:

bup join sda2.img^ | ntfsclone -r -O /dev/sdb9 -

ou

bup join sda2.img~2 | ntfsclone -r -O /dev/sdb9 -
    
por 14.12.2014 / 00:21