抢救win 10下不识别的移动硬盘

症状:Win 10下西数4TB 移动硬盘不能识别,explorer里显示盘符,但无法打开,explorer界面无响应,拔出再次插入,提示该盘不对,问是否格式化(千万不要点格式化)。

心情:平时都能及时备份,最近一偷懒就出现情况,傻眼了。

材料:不能识别的老盘;一块新的4TB 西数Elements 移动硬盘;ddrescue

ddrescue是GNU开源工具,google 一下就可以找到最新版本下载。最好运行在linux 下面。我因为手头的linux机器只有USB 2.0,与移动硬盘传输太慢,所以转而在win 下编译下。

好消息是在cygwin 下编译后的 ddrescue 可以用,我成功地将一个U盘的内容读出来。有一点需要注意的是win下ddrescue 指定的盘符仍然要采用linux 风格,类似于/dev/sdc (整盘)或者/dev/sdc1 (分区),而不能是 d:、e: 形式。在cygwin下运行:

$ cat /proc/partitions

可以看到旧盘和新盘的对应的linux设备名。在命令窗口运行ddrescue:

> ddrescue -f -a8M -c 1Ki -n /dev/sdc1 /dev/sdd1 ./mapfile

其中 -a8M 会跳过读取速度慢的扇区,-n 是反向读取,-c 是读取扇区大小,这些参考可以加快读取速度;第一个设备是老盘,第二个设备是新盘;最后一个文件名是mapfile,用于下次重启 ddrescue 会自动读取新的扇区,所以这个文件参数(文件名可以自取)一定要设备上。这也意味着ddrescue 的过程可以随时通过 Ctrl + C 来打断,然后重新运行上述命令接着运行。

cygwin 下编译很简单,cd进入 ddrescue源代码目录:$ ./configure$ make里面就可以看到 ddrescue.exe,可以从cygwin环境下拷贝出来用,不过还需要同时拷贝另外三个文件:cygwin1.dll,cyggcc_s-1.dll,cygstdc++-6.dll,这些文件可以从cygwin的bin目录下找到。

截止当前的进展,大概72%的数据已经成功被读出来。

Screenshot of ddrescue on win 10
Opertional ddrescue with Cygwin running on Win 10
结束时ddresuce的截图
未识别的移动硬盘99.99%可以 找回来。加一个chkdsk便可以完美使用抢救盘。

Leave a Reply

Your email address will not be published. Required fields are marked *