Looks like my USB HDD is old and corrupted:
rsync: read errors mapping "path/to/file.jpg": Input/output error (5)
kernel: [58927.940676] sd 6:0:0:0: [sdb] Unhandled sense code kernel: [58927.940683] sd 6:0:0:0: [sdb] Result: hostbyte=invalid driverbyte=DRIVER_SENSE kernel: [58927.940690] sd 6:0:0:0: [sdb] Sense Key : Medium Error [current] kernel: [58927.940696] sd 6:0:0:0: [sdb] Add. Sense: Unrecovered read error kernel: [58927.940703] sd 6:0:0:0: [sdb] CDB: Read(10): 28 00 00 21 f2 df 00 00 08 00 kernel: [58927.940716] end_request: critical target error, dev sdb, sector 2224863
The strange thing is that FS is not spoilt: I can list all directories. However, reading the contents of about 10% files gives these errors. Adiitionally, most of small files are safe, however, large files are all spoilt (corruption threshold is ~5MB).
How can it be? What options do I have to investigate & rescue the files? Can it be a driver issue? I can't believe that HDD damage could miss the FS metadata!
P.S. this HDD is perfidious: I have always been doing backups, and it waited for the right moment to betray :-D