如何从故障驱动器中逐步复制大文件?

如何从故障驱动器中逐步复制大文件?

我有一个外部供电硬盘,里面有多个 GB 的视频文件。我认为它很可能在某个地方出现故障。当前的行为是从连接到操作系统检测到驱动器需要几分钟时间(尽管声音效果很快)。然后,我有一段可变的时间,文件资源管理器可以访问驱动器,尽管导航非常慢。(Windows 位于 SSD 上,否则速度非常快。)在某个时间点(大约 5-10 分钟),驱动器会消失,包括断开连接的声音效果。我看到设备管理器中的驱动器从磁盘驱动器移动到通用串行总线控制器:“未知 USB 设备(设备描述符请求失败)”。

所以显然有些地方出了问题。(欢迎提出建议,但这不是主要问题。)我的诊断技能仍在进步,但这“感觉”更像是连接问题,而不是数据完整性问题。所以我的第一步是从驱动器上复制我能复制的内容。我尝试使用文件资源管理器中的常规拖放功能复制一个视频。速度太慢了,但在我听到系统断开连接之前,我复制了 6GB 视频的大约 20%。当然,“发生了错误。您指定的目标不存在。”(我对这条消息表示怀疑。问题出在来源上。)实际上,下次也会发生这种情况,但如果我一次复制四分之一的视频,我可能有机会。我只需要知道如何做,尽量少试错,因为我不知道我会尝试多少次。

我对其他相关问题的怀疑是robocopyrsync可能让我接近。但没有一个完全涵盖了这个用例。这是 Windows,中断的性质(驱动器故障)可能相关。简单的重试也不够;我需要在尝试之间物理断开/重新连接驱动器。我对故意只复制文件的一部分(somecommand source destination startByte=5885 endByte=10885 --append)或复制整个文件并能够恢复中断的传输(somecommand source destination restartable=true)没有偏好。第一条路径似乎特别缺乏问题/答案。

我如何将大文件的一部分复制到新文件中?- 我的文件是二进制的。我不确定这是否可行。

通过 rsync 恢复单个文件的传输- 是我见过的最接近的。注意,我在 Windows 上,没有rsync可用的。如果这是正确答案,我愿意安装 cygwin 作为复制文件时是否支持部分恢复?(Win/Cygwin)表示是可能的。

复制文件时是否支持部分恢复?(Win/Cygwin)- 正在处理 wifi。

robocopy 中止后会恢复吗?其他人建议robocopy使用/Z标志。我试过这个,但没有成功:robocopy source destination /Z /TBD /W:120。其中一个答案似乎是正确的,/Z可重启模式仅适用于网络传输。它对我没用。驱动器断开连接后,传输将失败。重新连接并运行相同的命令后,它从 0% 重新启动。

答案1

您可能会考虑复制驱动器而不是复制文件,除非您有强有力的理由,例如您预计驱动器很快就会损坏并且文件仅使用 10% 的可用空间。

这里使用 ddrescue 的优点是日志文件允许您重新启动复制过程。您不必考虑或编写程序来列出文件树、保存进度信息、关注由于中断导致的重复项未达到初始文件长度等。

如果您想继续使用 robocopy,我会设置一个测试场景来模拟源驱动器断电,以查看 robocopy 如何反应。这将涉及目标文件验证。

相关内容