使用 WinHEX + RoboCopy 抢救坏硬盘数据

[复制链接]
  • TA的每日心情

    2012-8-7 09:17
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    6

    主题

    18

    回帖

    21

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    21
    发表于 2012-8-2 15:50:01 | 显示全部楼层 |阅读模式
    经过长达1年的折腾,硬盘终于寿终正寝了,出现XXX个坏道(事后检测出来的),不少坏道坏在了INDEX区域上,造成部分目录和文件无法被打开。

    由于硬盘里面的数据是很重要的,因此必须先想办法抢救出来。这个时候不应该再对坏硬盘有任何的写操作,并且要尽可能的减少读操作。

    经过一番深思熟虑,我们决定采用winhex先对硬盘进行磁盘克隆(WinHEX菜单Tools-->Disk Tools-->Clone Disk)。要进行这个操作,需要目标硬盘(好的银硬盘)比源硬盘(坏硬盘)大,否则是不能进行有效的克隆的。硬盘的克隆完成以后,就可以开始对克隆以后的硬盘进行读操作了。


    由于是硬盘出现坏道,因此在磁盘克隆的时候,当WinHEX检测到坏道的时候,会用BAD SECTOR作为标记写入到好的硬盘,因此好的硬盘也会出现目录无法打开或文件无法读写的情况(这个只是文件系统受到损坏),要想抢救硬盘数据,就需要一个很好的文件复制机制。

    首先被排除的就是使用资源管理器进行复制,因为当资源管理器碰到无法读的地方时,整个界面可能会陷入假死状态,而且一旦出错会终止所有的复制操作。
    命令行下的copy和xcopy命令也是不行的,因为这2个命令当碰到无法读的地方时,会有一个超时,然后报告一个错误(我这里报告的是 CRC 数据冗余校验错误),然后退出文件的复制过程。
    其他的一些复制工具大多数均有上述问题。
    因此,我们需要一个工具当发现无法读取数据时能够自动跳过这个文件,而进行后面的操作。原本打算自己写一个工具,但是当我突然想起微软有一个现成的工具可以满足我的要求时,我放弃了自己写工具的想法。

    RoboCopy,Windows Resource Kit Tools 里面的文件同步工具,刚好能够满足我的需求。

    RoboCopy,一个功能极其强大的文件同步工具(不仅仅是复制了,已经上升到文件同步的高度),能够按照需求进行各种各样的文件复制、同步操作,包括:


    文件复制断点续传
    自动判定源文件和目的文件是否相同,是否需要拷贝
    当源目的发生变动时自动进行同步
    重试次数,当超过一定数目以后跳过这个文件进行后面的操作
    按照源目的的文件结构进行复制(类似于XCOPY)
    复制一些特殊属性
    目的文件和源文件的文件同步操作
    ……
    功能非常的强大,在今天下午的操作中,在RoboCopy的帮助下,我成功的完成了从受损硬盘的克隆版本里面拿到了尚未受损的数据(40GB)。之所以RoboCopy能够做到,是因为RoboCopy有一个机制:重试和放弃机制,当RoboCopy发现源文件无法被复制的时候,会根据用户的设置进行一个重试(默认是100万次,两次之间的间隔时间是30秒),对于部分受损的硬盘来说,这个功能刚好可以满足跳过损坏的文件而拷贝后面正常的、没有受损的文件。相比之下,XCOPY就没那么方便了。

    完成数据的复制工作以后,我怀着非常好奇的心情简单的看了一下RoboCopy的工作原理,不看不知道,一看吓一跳。从引入表分析,除了使用到了2个没有在MSDN里面完全公布的API:BackupWrite和BackupRead(这2个API可以在Platform SDK的示例代码里面找到使用方法),其余的API均是大多数Win32开发者经常使用的。微软能够把这些最最常用的API用到如此的地步,的确让人佩服。

    关于RoboCopy的更多的使用技巧,还是请大家自己发掘了,呵呵。
  • TA的每日心情
    开心
    2015-4-5 22:56
  • 签到天数: 730 天

    [LV.9]二品侍郎

    7

    主题

    875

    回帖

    4010

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    4010
    发表于 2012-8-2 16:32:22 | 显示全部楼层
    没用过,不知道什么情况
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2012-8-8 12:02
  • 签到天数: 14 天

    [LV.3]八品县丞

    0

    主题

    57

    回帖

    82

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    82
    发表于 2012-8-2 16:33:08 | 显示全部楼层
    学习了,谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-4 09:17
  • 签到天数: 1547 天

    [LV.Master]三朝元老

    40

    主题

    2501

    回帖

    1万

    积分

    [INTOHARD]旅长

    Rank: 9Rank: 9Rank: 9

    积分
    15540

    金点子奖

    QQ
    发表于 2012-8-2 17:07:15 | 显示全部楼层
    用diskgenius还可以直接烤数据,跳过坏道呢,那不是更方便。是吧?呵呵
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表