Copy data from one file or block device to another with read-error recovery