返回列表 发帖

谈硬盘数据恢复

1.硬盘分区表损毁  
造成这个问题的最通常原因,是在电脑使用过程中突然停电。如果电脑在进行磁盘整理或者其他需要大量磁盘读写过程的操作的时候,突如其来的停电有很大可能会产生这种错误。大家不要认为这是很初级的硬盘问题,设身处地想一下,要是一些老鸟自己碰到这个问题,也会彷徨一下子的。问题主要是如果不需要数据的话,那么这个根本就不算是一个硬盘问题,只要重新分区格式化就搞定了;但是,如果里面有比较重要的数据的话怎么办?   或者你比较懒,不想重装系统,能不能在保存系统和数据的情况下解决这个问题呢?对于这个要求,网上很多文章的介绍是用DiskMan这个软件去自动修复分区表。不过,在实际操作中,这样的方法倒是有点过于傻瓜化了,想靠软件去自动修复分区表,靠的其实是软件的算法,但是算法是死的,人却是活的,每个人自己硬盘的分区都不可能一样。  跟据实际的操作证实,这样的恢复方法大概只有90%的修复率,就是说,能100%完全修复分区表的机会并不是很高。不过用DiskMan这个软件,主分区的恢复倒是一般不成问题,只要你的主分区恢复了,系统可以启动了,剩下的不能恢复的分区里面的数据可以试着用FinalData来恢复,在正常情况下,应该可以完全恢复过来。这个方法最大的优势是DiskMan支持的文件格式非常多,所以即使在NTFS、EXT等等其他格式的分区里,也能比较有效地恢复分区表。   (DiskMan界面)   不过,如果你的硬盘是FAT或者FAT32的话,我觉得上面的方法还是太复杂了,而且把希望全部寄托在两个软件的算法上面,没有调动人的主观能动性,太浪费人力资源了^_^。估计绝大部分人对自己用的计算机里面的硬盘分区大小还是心中有数的吧,如果能记得每一个分区的大小,这样就可以了。  你原来用什么软件分区的,现在还是用它,一摸一样按照原来每个分区的大小重新分区,不过记住不要格式化。不要格式化这个非常关键,有一些分区软件如Partition Magic等等,通常在默认情况下都是分区连格式化的,在设置里面取消分区连格式化的选项。  重新分区之后,用软盘、光盘启动或者把这块硬盘接到另外一台计算机上面,运行NDD(Norton Disk Doctor,不要告诉我你不知道这个是什么),执行扫描,很快,它就会发现硬盘分区错误和一些很专业的“莫名其妙”看不懂的错误,不知道说什么也没关系,接下来当然是修复这些问题啦。全部修复完以后,重新启动,你会惊奇地发现整个硬盘又已经可读了,所有分区跟原来都一模一样,所有原来的文件也完好无损,一个字节也没有少。  这种方法的恢复成功率非常高,过程非常傻瓜但是又可以调动大家主观能动性。不需要运行专门的数据恢复软件,又能让大家真正去动手,使菜鸟也能拥有妙手回春的满足感,特能满足人们的虚荣心,哈哈。当然,最保险的办法还是在软盘或其他存储介质上备份一个分区表,这样可以令硬盘的安全系数得到大大提高。   (Norton Disk Doctor的DOS版界面)

2.硬盘逻辑锁
网上对于解除硬盘逻辑锁方法的文章可以说是汗牛充栋,但仔细看了,都是天下文章一大抄,每一篇都大同小异。其实,硬盘逻辑锁大体上可以分成逻辑死循环和增量偏移两种方式。再复杂的方式如全盘算法加密等等就不是普通的用户可以解决的了,因此这里也就不提也罢。  逻辑死循环也有很多种,从比较简单的0-1扇区死循环到比较烦人的C-D分区死循环,无非都是在分区表上作文章,人为地造成分区表的逻辑错误,使硬盘在启动的时候陷入死循环而不能启动,必须经过一些验证手段才能重新得到正确的分区表信息。  网上很多文章都长篇大论,介绍了通过PCTools、DE(Disk Editor)甚至Debug命令来恢复的方法,这些恢复方法在理论上是正确的,不过都没有太大的现实意义。因为他们都忽略了,在他们长篇大论的时候,用户硬盘里面的磁头还在0-1扇区或者C-D分区之间不断地作往复运动。  硬盘都启动不起来,还怎么去读取分区表信息?怎么把正确的信息写进去?磁头是没空做这个事情了,不知道他们是打算用铅笔写还是用圆珠笔写?   0-1扇区死循环还比较简单,软盘启动、光驱启动或者把硬盘挂在别的机器上还是可以动起来的,而如果是恼人的C-D分区死循环,则不论是软盘启动、光驱启动还是把硬盘挂在别的机器上,都不能启动机器。可笑的是,破除这个死循环的方法也是无比地简单,因为这种方式的逻辑锁其实是利用了MS-DOS里面IO.SYS的漏洞。  IO.SYS文件是输入输出管理文件(Input and Output),它包含LOADER、IO1、IO2、IO3四个模块,其中IO1中包含有一个很关键的程序SysInt_I,它在启动中很固执,非要去读分区表,而且不把分区表读完誓不罢休。如果碰上分区表是循环的,它就只有死机了。  同时, DOS为了获得硬盘使用权必须读分区表参数,而且DOS还约定驱动器号不能超过26,这是系统的设计者没有考虑到此等循环分区表的严重后果,这就是MS-DOS的脆弱性和不完备性。回过头来,如果不想陷入这样的逻辑死循环,只要不使用微软基于DOS(从DOS3.0到Windows Me)的操作系统就可以了。  有很多系统可供选择:如PC-DOS 、DR-DOS、ROM-DOS等(建议大家去看看新DOS时代,里面有很多很有用的DOS方面的信息:http://newdos.yginfo.net/dosmain.htm),另外,微软的NT/2000/XP系列也是可以的。硬盘动起来后,大家想怎么样就怎么样吧。不过我始终还是推荐大家用原厂的DM,毕竟是原厂的东西,对自己牌子的硬盘操作总是比较有把握的,而且,那些PCTools之类因为比较老,对FAT32、NTFS以及大硬盘等等的操作总有一些问题。  也有热心的人把恢复正常分区表的指令编写成一个小程序,叫Unlock.com(有很多不同的人编写的不同版本,大家可以挑一些日期比较近的,太古老十八代的东西就不要用了),大家可以试用一下,效果还是有的。  现在,一家叫Acronis的公司也来凑热闹,发布了一个叫AcronisUnlock的小程序,运行它可以创建一张软盘,用来为硬盘解锁。毕竟是一个商业产品,如果没有一定的作用谁敢拿出来?试了一下,虽然不是能治百病,但对一般的硬盘锁还是很有效的。   (Seagate的原厂DM)   增量偏移法当初其实不是用来制造逻辑锁,而是用来制作硬盘保护卡的,联想的“宙斯盾”和捷波的“恢复精灵”等硬盘保护软件也是采用了相似的技术。这种方法的原理就是在硬盘里面划出一个特别的区域,把整个硬盘的所有写入全部操作映射到这个区域中,这样,原来设置了受保护的系统和数据区域就不会受到新增加的写入信息的影响,甚至是文件的修改,其实也是映射到特定区域的操作。  因此无论出现什么样的崩溃,只要一个按钮,就可以把原来受到保护的系统和数据恢复过来。不过对硬盘的保护好是好了,但如果换了一块主板,或者主板、保护卡坏了,要处理这个硬盘也真的十分头痛。因为上面说的方法对这个硬盘已经没有用了,你通过软件从硬盘里面读出硬盘分区表的数据,然后修改、写进去,可惜,这些正确的信息并没有真正写入分区表,而是都映射到那个特殊的区域去了,硬盘仍然不行。  这样的硬盘,无论做重新分区、格式化甚至低格,完了你还是发现里面的数据纹丝不动。如果你运气好,知道硬盘是被“宙斯盾”或“恢复精灵”,又或者是什么其他硬盘保护卡保护过的,那么你只要找到相应的主板或硬盘卡,执行一次卸载过程就可以了;如果运气不好,不知道,那么试试下面的方法吧。  经过一些实践,可以用这样的方法来解除。找一块没有“宙斯盾”或者“恢复精灵”主板的机器,把这个硬盘作为从盘挂上,COMS设置里面把这个硬盘设成None(在大多数情况下,这样就已经能够解除映射信息对BIOS的欺骗,恢复软件对硬盘的实模式操作),然后运行fdisk /mbr,应该就可以恢复这个硬盘了。  如果还是不行,那就干脆不要用微软的系统。在PC-DOS或者ROM-DOS下面运行原厂DM,把硬盘内部现有的分区表信息不管对错,全部推倒,重新使用该硬盘的默认盘面、磁头、柱面、扇区信息进行快速初始化并按照原来的分区大小和方式重新分区。  如果阁下对数据的完整性十分在意,不想丢掉数据,那么完了以后试着用FinalData、EasyRecovery之类的软件吧,只能祝你好运(对这些数据恢复软件运用越纯熟,了解越多,数据恢复的成功率越高,建议大家平时有事没事多试试,所谓“平时多流汗,战时少流血”嘛)。  要解决被增量偏移这种方法锁了的硬盘真的比较麻烦,就算非常有经验的人,恢复的成功率也是不高的。现在,我对“宙斯盾”和“恢复精灵”开始有点莫名地憎恨了,不知道大家是否有同样的感想,呵呵。

3.零磁道损坏  
这样的文章网上太多太多了,遗憾的是很多都是几百年前的资料,都是在网上你抄我我抄你的。要命的是根据他们所说的用DE或者PCTools将硬盘的起始扇区从0面0柱1扇区改为0面1柱1扇区的方法,却根本没有一个人真正修好过零磁道。  想来,大概是写这些文章的人自己也没有零磁道损坏的硬盘,没有真正看到过这样的硬盘是不是真的像他们想象的那样还可以动起来;或者,就是把修复软盘零磁道损坏的方法照样套在硬盘上去了。硬盘和软盘的结构和机制区别非常大,特别是现代硬盘,已经完全没有软盘原理的影子了。  零磁道损坏分为物理零磁道损坏和逻辑零磁道损坏。逻辑零磁道其实就是引导扇区(请注意,不是网上众多文章所说的主引导扇区,主引导扇区坏了的话是神仙也难救的),物理零磁道是主引导扇区。在老式的老爷硬盘里面,主引导扇区的信息通常是做在硬盘的Firmware上面的,所以硬盘没有物理零和逻辑零的区别,主引导扇区和引导扇区的称呼没有任何区别,其实都是指逻辑零。  而现代硬盘,初始化信息的起点就是硬盘的物理零,如果物理零损坏了的话,硬盘根本无法完成初始化过程,通过软件方法根本没有成功恢复的可能性。通常,现代的硬盘启动的过程是这样的,通电后,磁头接收到从硬盘控制芯片上传来的第一个启动指令,然后开始读主引导扇区(物理零)的初始信息,确定硬盘保留区的位置,然后读硬盘保留区,确定缺陷列表、调入校验算法公式、读入内部操作指令等等。所有这些完成了,硬盘才算完成了初始化,正式进入工作状态。然后,硬盘开始读取引导扇区(逻辑零),确定硬盘的起点和分区表位置,读入分区表等等。  从这个过程的分析中,我们可以看出,逻辑零磁道损坏的硬盘还是可以完成整个初始化过程,被系统认出来的,因此,也就存在着被软件修复的可能性。就不要用什么DE和PCTools了,这些都是很老的软件,基于老式硬盘的CHS结构体系以及相应的3D寻址方式,跟现代硬盘的模块化结构和线性寻址方式是有很大差距的。  按照网上文章的说明修改以后,对现代硬盘根本不会起作用,不信的话大家可以自己试一下(也会有起作用的时候,但那必须是你的主板BIOS里面有3D寻址-线性寻址翻译模块,并且恰好能够支持你想要修的那个硬盘,不过你要是觉得可以碰上这样的可能性的话,我劝你不如去买彩票算了)。  用一个原厂的DM吧,DM用的人多了,但是我可以说估计没有几个人会有这个好奇心把里面所有的选项和功能都试一遍的。某些厂商的DM里面有一个项目,叫“高级选项”,进入后,选“自定义”选项,有一个项目的选项中,它会首先问你是否愿意按照硬盘参数默认的磁头、柱面和扇区参数来对硬盘分区和格式化,既然你的硬盘逻辑零磁道坏了,当然是选择“否”,然后DM会让你自己输入相应的磁头、柱面和扇区信息,这时候你应该知道如何做了吧?   如果不幸你的硬盘品牌的相应DM没有这样的选项和功能,那么就试试用Acronis DiskEditor吧(要在Windows 2000/XP下面运行),试着用这个最新最强的扇区编辑软件封闭硬盘的逻辑零磁道,也可以达到相似的效果。不过无论是DM还是Acronis DiskEditor,这样的操作因为受到很多其他条件的约束,先决条件是必须能把硬盘认出来并且能够进行实模式操作,否则成功率不会高。而且对普通用户来说这些操作还是比较复杂,要多试几遍,多研究几次才可以提高成功率。   (Acronis DiskEditor)   对于物理零损坏,根据上面的硬盘初始化过程,我们可以知道,这样的硬盘根本连初始化都不能开始进行,无论什么系统什么软件都不可能对它进行操作,真正的软硬不吃。不过,这么久以来,我还没有真正碰到过物理零损坏的硬盘,所以也不知道像PC-3000这样的软件有没有这个能力修复。  比较能确定的方法只能是回原厂用机器设备重新扫描定位,重写伺服信息,然后进行内部格式化来修复;或者,你可以找一家比较有实力,拥有硬盘伺服机的修复公司帮你修,不过成本方面就……嘿嘿。  总的来说,现在有很多公司根据现代硬盘的结构和原理,配合现在比较通用的Windows操作系统平台,设计了很多非常新的、功能很强大的软件,譬如Acronis,这家公司的全套系统工具包括DiskEditor、Drive image、OS Selector、Unlock(解除硬盘逻辑锁)等等十多个,都应用了现在硬盘的基本原理,功能也非常全面。在进行各种硬盘操作的时候,适当进行各种软件的新旧搭配,互相配合使用,经常会发现有意想不到的效果。这些就需要大家在实际操作中摸索并熟练使用才可以达到的了。

哈,分析精辟~
学习了~
老吴厉害
无限风光在险峰

TOP

太高深的技术了
多学技术少灌水,一天在线10个小时累死你,你能灌多少?双方都玩不起鸿元~

TOP

看完要半天 呀     东西太多了

TOP

谢谢分享!呵呵!!!!!!!!!!!!!!!!!

TOP

看的我头晕啊,,。

TOP

精彩的文章,用了电脑10年,还从来没有碰到过硬盘坏的情况,没坏之前就换硬盘了.....
因梦想而伟大,因行动而成功

TOP

返回列表