I have a external, powered hard drive consisting of multi-GB video files. I believe it is likely somewhere in the process of failing. Current behavior is several minutes between connection and the OS detecting the drive (though the sound effect is rapid). Then I have some variable amount of time where File Explorer can access the drive, though navigation is very slow. (Windows is on an SSD and is otherwise very fast.) At some point (on the order of 5-10 minutes) the drive will vanish, including the disconnect sound effect. I've seen the drive in Device Manager move from Disk Drives to Universal Serial Bus controllers: "Unknown USB Device (Device Descriptor Request Failed)".
So something is clearly wrong. (Suggestions appreciated, but not the main question.) My diagnostic skills are still in progress, but this "feels" more like a connection problem than a data integrity problem. So my first step is to copy what I can off the drive. I tried one video using the normal drag/drop in File Explorer. It went too slow, but copied about 20% of the 6GB video before I heard the system lose the connection. And of course, "An error has occurred. The destination you have specified does not exist." (I question that message. It's the source that's the problem.) Realistically that's just going to happen next time as well, but I might have a chance if I copy a quarter of the video at a time. I just need to know how, with a minimum of trial and error as I don't know how many attempts I'm going to get.
My suspicion from other related questions is that
rsync might get me close. But none has quite covered this use case. This is Windows, and the nature of the interruption (a drive failure) could be relevant. A simple retry is also not enough; I will need to physically disconnect/reconnect the drive between attempts. I have no preference between intentionally copying only part of a file (
somecommand source destination startByte=5885 endByte=10885 --append) or copying the full file and having the ability to resume an interrupted transfer (
somecommand source destination restartable=true). The first path seems to have a particular lack of questions/answers.
How can I copy part of the huge file to new file? - My files are binary. I'm not sure this will work.
Resume transfer of a single file by rsync - is the closest I've seen. Note I'm on Windows and don't have
rsync available. If this is the right answer, though, I'm willing to install cygwin as Copy files with partial resume support? (Win/Cygwin) indicates is possible.
Copy files with partial resume support? (Win/Cygwin) - is dealing with wifi.
Will robocopy resume after being aborted? and others suggest
robocopy with the
/Z flag. I have tried this without success:
robocopy source destination /Z /TBD /W:120. One of the answers seems to be correct that the
/Z restartable mode only works for network transfers. It did nothing for me. Upon drive disconnect, the transfer would fail. Upon reconnect and running the same command, it started over at 0%.