There is no way to identify files that have been "corrupted at source". What you may be able to do is to identify files that have been written to one or more disk blocks that can no longer be read, but this will only be a subset of the possible set matching your criterion.
As you have suggested, the -u (--update) flag will instruct rsync to avoid attempting ...
Use a revision control system (e.g. mercurial, or subversion): put the working copy in the VM (so everything works), and the repository on the host (and/or remote).
This works, and you should be using revision control anyway.
Not sure if we can answer the "why" behind the "what", but your system restoration options are limited to what the System Management Services (SMS) can boot from. There is an old article: Restore via a CD (Power5) that steps you through restoring via a CD-ROM. Otherwise, the typical SMS boot options are:
Okay I found the issue and from that I was able to build a correctly working solution that stills follows the systemd workflow (for the most part).
The following service, while on first sight looking correct will never be executed:
Description=Backup on poweroff to external encrypted USB disk.
In fact you don't have to back up the directory. Once the partition is present, you can just copy the contents and then you can mount it at /home/dev. This will hide what's at that location, so you may want to empty that folder not to clutter your disk with old stuff. (I suggest you do back it up anyhow just in case. You can store the backup anywhere you ...