ntfsclone映像的增量备份


2

我试图在Linux上使用ntfsclone对Windows分区进行压缩增量备份。目前,我使用类似以下命令的方式制作完整的ntfsclone图像:

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

我想要做的是通过使用先前的备份和ntfsclone输出流创建增量文件来执行增量备份,而不是在每个备份会话中创建新的ntfsclone映像。

我知道创建二进制文件的差异并不容易,并且为此目的存在多个工具(rdiff,xdelta,bsdiff等);但是,它们都需要两个源文件存在于磁盘上,并且无法直接比较输出流中的数据。


换句话说,是否有任何二进制流的解决方案可以执行类似以下命令的操作?

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

显然,上面的命令不起作用,但我希望能够解压缩旧图像,将其与Windows分区的ntfsclone表示进行比较,并在一步中通过比较创建压缩增量图像。


一些条件是:

  • 流程必须使用 ntfsclone
  • Deltas必须是可修补的 到磁盘
  • 优选地,一切都在一个步骤中进行

也可以(并且可能更好)通过将ntfsclone图像恢复为管道并通过直接比较来创建diff来创建delta文件 /dev/sda2,因为这可能会创建一个较小的输出文件,但这样做会使过滤掉未分配的磁盘空间变得复杂。

(也就是说,我们必须将未使用的磁盘空间归零或做类似的事情 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 防止归档所有已删除的文件数据。呸!)

任何接受者?


注意: 一个叫做的工具 ntfsddup 通过 魏东 确实存在以实现这一点,但我很难让这件事情发挥作用。该软件在 非常 早期阶段,需要大量的工作。


Answers:


2

我已成功使用了一个名为bup的工具(基于git),它可以有效地存储仅略有不同的大型二进制文件。它也适用于nfs,这对我来说很方便,因为我有一个nfs服务器,有很多空间我保存数据:

例如,从我的笔记本电脑备份ntfs图像(diaz)

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

恢复(到不同的驱动器):

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

或以前的版本:

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

要么

bup join sda2.img~2 | ntfsclone -r -O /dev/sdb9 -
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.