I occasionally like to back up my entire Windows system drive (currently Windows 10, but I don't feel like this is a version-specific question), such as when I replace it. I like to archive it all into one file and stick that file on Glacier or other online cold storage.
EDIT: I don't mean my running system drive; I mean a former system drive on a secondary disk.
I have yet to find anything that handles all of the following NTFS file types correctly:
- Hard links
- Soft links (reparse points??)
"Correctly" here means "the link is not followed, but is stored in the archive such that when restored it points to the same place as before".
7-Zip seems the obvious choice for this sort of thing, but taking the \Users\foo\Application Data "directory" as an example, old versions of 7-Zip would store that as a zero length file, I think?, but the current version loops on it endlessly and eventually explodes.
According to a Google search, WinRAR does no better.
As far as I can tell, I have the following options; these options all seem terrible and I'm wondering what I'm missing:
- Back up the drive using something like CrashPlan, and then zip and backup the storage directory for those backups because those will be normal files. This gets me a complete and correct restore, but it ties me to that particular backup tool for all time (which becomes less awesome if the company goes out of business or whatever, but maybe there's an open source backup tool in this space?).
- Use something like tar (7-zip has a tar mode) that understands links but doesn't understand NTFS semantics, thus possibly losing all kinds of important details.
- Backup (using FastCopy or something (FastCopy does an excellent job with these sorts of files, by the way, although it seems to convert some junctions to soft links)) to a virtual hard disk (VHD, VMDK, something; not sure the best option here for forwards compatibility), and then compress and back up the disk image.
- Delete the junctions and directory links; let the file links get pulled in normally. One can find scripts for this on the web. Which gives you an idea of how common and pervasive a problem this is.
- Find or write a script to replace these file types with text files describing where they used to point, thus making the data recoverable-in-theory.
Are there better options?