我试图在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 通过 魏东 确实存在以实现这一点,但我很难让这件事情发挥作用。该软件在 非常 早期阶段,需要大量的工作。