I recently started using ntfsclone -s to create regular backups of
multiple Windows machines in my home network. Storing multiple backup
generations requires more space than I can bear, so I wanted to replace
older images with delta files.
The binary diff tools which I tried where unable to efficiently handle
such large files. rdiff for example consumed all my memory and finally
crashed my kernel. xdelta3 worked somewhat, but was slow and produced
suspiciously large deltas.
Therefore I wrote ntfscloneimgdelta, a simple program which reads two
ntfsclone special image files, and creates a delta file with almost
identical structure, containing only the header, the clusters and some
commands necessary to reconstruct the second input file:
ntfscloneimgdelta delta FILE1 FILE2 DELTA
To reconstruct FILE2 from FILE1 and DELTA:
ntfscloneimgdelta patch FILE1 DELTA FILE2
Of course it's possible to dump the image and to create the delta in one