Re: Speaking as a humble home user
As another home user, I run a similar setup: disk images of the OS drive, and file copies for data run periodically.
However, having been stung by data becoming corrupted without my knowledge, and then naturally having this corrupted data being itself backed up, I had to come up with something a bit stronger.
My current data backup system, lashed together by scripts, is:
1) Copy all files to be backed up to the backup disk (a USB attached hard disk) into a Mirror folder. I use FreeFileSync for this so I can set up inclusion and exclusion rules, and it can use VSS to copy files that are in use.
2) Create a text file containing the ACLS of all the backed up files, in that Mirror folder (optional, but in my case, some of the ACL permissions are important and would be a pain to reconstruct). Couldn't find a decent tool for this, had to write one.
3) Create a checksum file containing the checksums of everything in the Mirror folder (md5deep can do this)
4) Create a new timestamped history folder. For every file in Mirror, check the previous history folder (created last time the backup was run) for the same file. If the same file, with the same modified date, exists there, then create a hardlink to it in the new history folder. If the file isn't there, or has a different modified date, copy the file from Mirror into the new history folder. (A tool called ln <http://schinagl.priv.at/nt/ln/ln.html> can do this in Delorean Copy mode)
5) Check the checksums file against the files in the new history folder. Any mismatches indicate that a file has changed content without changing modified date, and therefore an indication of possible corruption. This is reported, then there are three copies to check by hand - the one in the history folder from previous backups, the one in the mirror folder from the current backup, and the one on the live installation that was backed up. At least one of them is probably corrupted, but it should be possible to find and restore one that isn't.
Before doing any restore, the checksums can again be verified to guard against the backed up data having become corrupted since it was backed up (only the current versions of backed up data are verified as part of the normal backup procedure).
Of course, the disadvantage of this is that it is slow, as it always has to copy all the data. However, if you don't actually copy the data, and only assume that it's still the same because it isn't supposed to have been modified, how would you know?
I have, every so often, looked to see if I could find backup software that would do the job in a less home-brew fashion, but nothing I've found yet can do the job.