看起来我的 USB HDD 已经老旧并且损坏了:
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
奇怪的是 FS 没有损坏:我可以列出所有目录。但是,读取大约 10% 文件的内容会出现这些错误。此外,大多数小文件都是安全的,但是大文件全部损坏(损坏阈值约为 5MB)。
怎么会这样?我有什么办法可以调查和挽救文件?这可能是驱动程序问题吗?我不敢相信硬盘损坏会遗漏 FS 元数据!
PS:这个硬盘很不可靠:我一直在做备份,但它却在等待合适的时机背叛我:-D
答案1
列出目录并不意味着文件系统没有问题,你只是在查看元数据(这是一个小的文件系统的百分比)。
- 备份所有可以备份的内容
- 运行文件系统检查 (fsck)
- 创建另一个备份(以防 fsck 设法保存更多文件)
- 更换磁盘