Linux:从损坏的 HD 复制的最佳方法是什么,只复制可以完全读取的文件?

Tan*_*n六四 4 linux hard-drive rsync file-transfer command-line

我正在从损坏的 HDD(不是 SDD)复制,其中大约 15% 的文件会导致 I/O 错误。我只想要剩下的 85% 完整文件,并获得损坏文件的列表。怎么做?

cp 在第一次读取错误时停止。scp/rsync 抱怨并删除副本(想要)并退出(不需要)。出现 I/O 错误后无法继续,至少通过阅读 rsync(1) 手册找不到。

我谷歌了很长时间,所有帖子都是关于其他需求的:

  1. 告诉海报IO错误意味着硬盘损坏(我知道);
  2. 告诉发布者一种复制单个文件好的部分的方法,用零填充损坏的数据(我有 100k 个文件,每个文件都小于 10KB,损坏的文件对我来说没有用,即使只丢失了一个字节);
  3. 告诉海报如何重复运行 rsync(通过网络)以对抗不良连接并完成复制。
  4. 告诉海报如何更改默认超时,让 rsync 更努力地读取文件(我不想这样做)
  5. 告诉发布者运行 fsck 来修复文件系统错误。

感谢您阅读不需要的答案列表!

注意:这是一个物理损坏的磁盘,由适当的诊断工具确认。我也运行了一个彻底的 fsck。

Tan*_*n六四 5

rsync --ignore-errors到目前为止,似乎成功了。我没想到它会起作用,因为手册上说:

   --ignore-errors
          Tells --delete to go ahead and delete files even when there are I/O errors.
Run Code Online (Sandbox Code Playgroud)

我根本没有使用--delete选项。