Windows – Using NTFS hard links to combine full/differential backups

hardlinkntfswindows

Short: Is it possible to (robo)copy a directory tree using hard links instead of physical copy?

I want to make a daily backup of my data files, every day in it's own directory. Now most files don't change every day, so my idea to speed up backup and use less disk space was to copy the backup of (day-1) to (day) using hard links, then use robocopy to replace the files which have changed since yesterday.
This way I would only need to copy the full backup once to the USB drive, afterwards I could just copy the changes and still have directories containing all the files, sharing files with other backups using hard links. This way I got two full backups but it uses only file space for one+differential, and the backup files are accessible without need for special software, which is a big plus for me.

Is this possible?
Is there a program to create hard link copies of all files in a directory tree?
Am I missing some pitfall I'm not aware of?

Best Answer

There is a way to make backups like you say, but I don't believe with Robocopy alone.

There are several programs that will hard link or dedupe backups, and be space efficient.

Here are a few programs I've used or ran across:

  • Dupemerge - free - While not a "backup program" it is a bulk hard linker.
  • hardlink backup - free for personal use - uses hard links
  • Duplicati - free - (dedupes I believe like rsync does)
  • rdiff-backup - free - dedupes like rsync

I believe what may be a good fit for your questions is Dupemerge. You could have a batch file execute Robocopy to copy the contents to a directory (ex. d:\backups\YYYY-MM-DD). When that command is done, the batch file could call Dupemerge on d:\backups. That would hard link the files within and across all the subdirectories of d:\backups.

The downside of this is you would need enough space on the external to hold the newly created unhard linked backup. After Dupemerge is run, the newly created backup will be hard linked and the space will be freed.

This would make restoring easy because each dated directory would appear to have a full backup.

As a side note, if you are going to use hard links, I like Link Shell Extension. It helps let you know what isn't hard linked, what is and what it is linked to.

I’ve run across other hard link or deduping programs, but I liked these the best.

Related Question