4、如何“修复”
上面说到唯一的真正修复就是低格,那么其他那么些修复都是怎么回事?那些个HDD Regenerate,效率源,DiskDirector,都是怎么修复硬盘的?
一句话,都是“修复”,是拆东墙补西墙的法子。
(直接跳来看答案的从这里开始)

终于可以聊到最常见的修复软件的工作原理了,也就是所谓的P-list和G-list。其实每次和人谈到硬盘修复都想吐槽这个名词,国内的一起跟着念P表和G表,听得懂是啥么都?这俩分别是Permanent List和Growth List。硬盘坏道屏蔽修复前者是“永久损坏扇区表”,后者是“新增损坏扇区表”。
每个硬盘的实际容量都大于标称容量,因为很容易想象,出厂的时候就可能有些扇区因为各种原因不能用。所以出厂的时候每块硬盘都需要经过一次完整扫描,然后将所有发现的不可用扇区记录在永久损坏扇区表中。硬盘逻辑会将这个列表里的扇区当作不存在,遇到了就跳过去。所以说这样的坏扇区是几乎不影响性能的。
光有这个列表是无法应付使用中出现的坏扇区的,所以有这么个新增损坏扇区表。这个表相对复杂一点,它的意义是在遇到某个损坏扇区的时候,硬盘逻辑会去出厂时划分的一块备用区去找用来替代这一个扇区的扇区。很好理解,这样的跳转会大大降低连续读取的速度,更何况备用扇区往往放在硬盘最慢的中心位置。
那么修复软件都是怎么工作的?说白了就是往这两个列表里添加扇区。对于大多数硬盘来说,永久列表除非在全盘数据清空的情况下是不能添加的(因为会导致周围数据不一致),所以一般坏扇区修复软件的方法就是一旦发现坏扇区,就添加到新增表中。
当然,也有一些软件采取更高级的策略,也就是小范围清空然后添加到永久表。在相对新的硬盘中,永久表也有备用区,而且不同于新增表,是每个磁道有备用区。那么这些硬盘修复就简单许多,直接将磁道中的数据备份出来,添加坏扇区到永久表,然后重写整个磁道即可。
5、有关的一些其他知识点
-硬盘是如何检测坏扇区的?
前面说到,每个扇区都有一份用来检测读取的数据对不对的数据。每个扇区被读到的时候,硬盘逻辑就会利用这些数据检查读取的对不对。如果不对,就——再读一次。还不对,再读一次。读了十几遍几十遍还不对,就报告错误。
-软件是如何检测坏扇区的?
除了遇到硬盘逻辑报告的错误,就是看读取速度。有一个假设,相邻的扇区的读取速度应该是一致的,因为硬盘转速稳定。一旦出现快慢变化,几乎一定是因为硬盘重读了,那么这个扇区很可能有一定程度的损坏。
-如何修复这些“一定程度的损坏”?
和彻底无法读写的扇区不一样,这些一定程度的损坏往往只要重新写入数据即可。大多数数据修复软件就是这样做的。如果写入之后还是不能用,那么就轮到两张表出场了。
-那么为什么有时候修复时间需要很久?
两个原因。一是因为扇区的额外数据损坏,硬盘很难寻道——硬盘也需要确定自己读到是不是这个扇区的内容,而扇区的“名片”也存在扇区里。如果硬盘读到的数据不符,硬盘逻辑就会重新读取,直到确定读到,或者放弃。
另一种是因为有些数据修复软件采用了比较高级的手段——统计学方法来修复数据。这些软件需要获得底层的硬盘访问权限,然后对故障区域进行重复多次读取,当获得一定数量的数据样本之后就可以根据统计上最可能的值来建立一个统计上的扇区数据,然后试图采用常规的方法来判断数据是否可用。这样的方法往往需要读盘上千次,但是对于某些损坏有很好的效果(实践中,磁头偏位可以这样恢复数据)。
-哪些软件具有这些高级功能?
我个人不推荐各种软件。老实说,数据修复是个复杂且没有一定之规的事情,就算是设备用不同的流程做结果也是完全不一样的。一般来说,数据修复有个“自下而上、先排除再恢复”的指导思想。自下而上就是先从底层开始修复,这样可以确实地防止底层故障破坏上层数据;先排除再恢复则是先排除导致故障的问题再恢复数据,防止恢复过程带来更大的损坏。至于软件本身,可以说目前看来任何不需要自行引导系统的高级修复软件都是耍流氓。而自行引导往往依赖各种BIOS设置,有时需要特殊接线,所以不建议普通用户尝试自行修复。
感谢阅读。
利益申报:曾经业内,早已转行。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-31055-3.html
南海岛礁的开发
花大量的钱用在广告上就OK了