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.