My node just crashed with "ERROR: ReadBlockFromDisk: Deserialize or I/O error - CAutoFile::read: end of file at CBlockDiskPos(nFile=5, nPos=1605429077)". Sure enough, blocks/block00005.dat is only 1.4 GB in size. It used to be 2.0 GB. It appears to have been truncated. The timestamp shows it was modified at 2015-09-09 3:00:35 UTC, but nothing unusual happened at that time. How did this happen? It's a new hard drive so my first thought was I got a bad one, but surely that wouldn't affect the timestamp? I'm currently running a full virus scan. If that turns up nothing, should I just copy that block file from my backup or will that screw up the block index or have other weird side effects?
ETA: Virus scan was clean. I've copied in a good blk00005.dat and am currently running it with -checkblocks=0 -reindex, which is probably overkill but I want to make sure nothing else has gone wrong, since I still have no idea how it happened.
ETA: Well that was unexpected. After it finished with no errors, it blew away all my blk*.dat files for no obvious reason and started synchronising from scratch. I can see this is going to be a fun night.