Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

As part of my job I regularly need to upload big files (a 512 MB to 1 GB ISO, for example). In some cases, very little changes from ISO to ISO (say, a 10 MB file in a 1 GB ISO). Unfortunately, I can't just send the changed file - I need to send the whole ISO. A faster connection is not a valid solution.

Is there any tool (preferably Linux, preferably free) that can make and apply diffs of such big binary files?

share|improve this question
Can't you build the .iso on the remote server? update the file remotely and then master the iso on the remote server. – BuildTheRobots Jan 14 '10 at 23:13
An additional requirement would be that it also has a Windows version. Looks like xdelta could be what I'm looking for. – ggambett Jan 14 '10 at 23:14
up vote 3 down vote accepted

I use xdelta for this purpose, others use rdiff. Both work nicely.

share|improve this answer

We use rdiff for replicating database snapshots to a backup server at remote offices every hour. It's been working pretty well for several months now.

All your need is rdiff and cygwin1.dll and you're good to go.

share|improve this answer

Is it possible to rsync the files? This will find an apply small binary differences.

share|improve this answer

BSDiff is more efficient. "bsdiff and bspatch are tools for building and applying patches to binary files. By using suffix sorting (specifically, Larsson and Sadakane's qsufsort) and taking advantage of how executable files change, bsdiff routinely produces binary patches 50-80% smaller than those produced by Xdelta, and 15% smaller than those produced by .RTPatch (a $2750/seat commercial patch tool). "

share|improve this answer
While a nice tool, please note the running time and complexity: "max(17*n,9*n+m)+O(1) bytes of memory, where n is the size of the old file and m is the size of the new file." That's a minimum of 17 times the size of the old file. I came here looking for an alternative because trying to come up with a diff of my 1.56 GB ISO took a bit too long (I gave up waiting) with a quad core cpu and 16gb of memory. – vmrob Dec 10 '14 at 1:00

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.