4.11 Maxtor驱动器的数据恢复

下面介绍Maxtor驱动器的数据恢复方法。

4.11.1 诊断

从Maxtor驱动器中恢复数据时首先要求准确地诊断故障,最好与盘体(HDA)分离,以减少同时可能对驱动器产生的进一步的破坏或数据丢失。故障与诊断方法相似,可细分为以下几类。

电路板故障。

马达/轴承失效。

磁头停泊元件失效。

读/写磁头失效。

磁头失效和表面刮伤。

坏扇区。

全部或部分固件数据丢失。

问题范围确定以后就可以开始进行诊断了。要确定发生了以上哪些故障,首先要考虑到,Maxtor驱动器固件区的损坏通常不是孤立的事件,它常常是由持续的(大量的坏区)或短期的机械(轴承)或电子部件(前置放大器、磁头、马达控制电路等)故障引起的。

第1步 从电路板开始检查。为确保电路板正常,可以把它安装到固件版本相同的另一个驱动器上并进行检查,根据驱动器是否能够完全正常工作就可以做出判断。这种方法并不复杂,因为Maxtor驱动器的电路板中不包含校正数据,它在另一个驱动器上工作只需要固件版本相匹配即可。

第2步 如果故障不是由电路板引起的,那么接下来就应该诊断马达。如果电路板正常而马达不起转,则可能是马达线圈损坏或磁头粘连在磁盘表面上。不过,Maxtor驱动器不可能由于磁头粘连而产生故障,因为它们的马达功率都很高,磁头“黏性”又很小,所以最可能的原因就是液态轴承被卡住。滚珠轴承驱动器马达运转时噪音明显很大,但其好处是这种驱动器几乎不会被卡住。另一个造成马达故障的常见原因是电路板和HDA接触不良或者二者之间的电缆断裂。马达故障可通过以下迹象进行判断。

绕组线圈短路或断路。

液态轴承(Fluid Dynamic Bearing, FDB)被卡住。

马达运转时噪音非常大。

电路板和马达之间的电缆问题。

音圈黏合质量问题。

第3步 如果驱动器电路板正常,马达功能也没有明显的问题,在尝试校准时没有敲盘声或只有轻微的敲盘声,就可以检查磁盘表面是否有刮擦。不拆开盘体而进行完全诊断是很困难的,但是从PCB侧通过伺服(STW,伺服写入机)孔可以看到90%的磁盘表面。对于只有一个磁头的驱动器,可以通过此伺服操作窗看到整个磁盘的表面。一处擦伤会很快蔓延到其他地方,发生表面刮擦往往会造成数据极难恢复。

第4步 如果经过诊断证明马达和电路板都没有问题,也没有刮擦,磁头从停泊区移开时也没有敲击声,那么故障既不是由磁头损坏造成的,也不是由磁头功能不正确(例如不能读取固件区数据)、有坏区或固件数据损坏造成的。这种情况最难确定故障原因,因为有几种故障具有相同的迹象。这时,应先将驱动器跳线设为安全模式,之后从程序启动菜单加载驱动器对应属系的任意一LDR文件。如果加载LDR文件时出现敲盘声,表明磁头存在故障。如果LDR文件加载到内存时没有引起敲击声,但是在进入标准模式后读模块表时出错,说明引导程序(LDR文件)版本与ROM内容不匹配,需要重新选择一个可以读取模块表的LDR文件。

第5步 如果模块表可读,就可以进行固件诊断和处理了。

4.11.2 译码表问题的解决

一个罕见的案例是:Maxtor驱动器会在G-List头部正确、校验和有效,但含有错误的信息时,导致驱动器不能启动或加电时挂起。这时可以通过加载LDR文件查看G-List。在这种模式下复位G-List(固件区写入功能应该正确)的尝试不会得到我们想要的结果,因为替代扇区的LBA地址会被定义为-1。而从同属系、同容量的驱动器中复制一个空G-List则是一种正确的方法。

还有一种经常发生的情况,就是译码表模块头正常、校验和正确,其他的基本模块也正常,但是驱动器却不能使用逻辑参数正常工作。这种状况目前有以下两种已知原因。

第一种情况少量发生在CALIPOS属系的驱动器上,其原因是其中一个磁头在物理上断开,致使驱动器译码表拒绝加载,问题在于RZTBL(PN=78H)模块中包含磁头数。此种故障的方法诊断在第4.10.11节中已有介绍。

第二种情况几乎在PC3000支持的所有Maxtor驱动器上都出现过,它源于一些偶然性因素导致的随机或伪随机数据被写入译码表域(一个模块的数据可以被写入另外一个模块中),但模块头、校验和可能都正确。这种问题无法通过自动修复模块命令修复。

在这种情况下,为了进行诊断,可以从其他相同容量的完好驱动器中向故障驱动器复制译码表模块(PN=37H, PN=18H, PN=78H)。在操作前应预先备份固件区的所有模块,特别是PN=33H模块,并确保固件区没有重定位缺陷。建议的诊断方法不适用于固件区含有缺陷扇区的情况。如果写入译码表模块之后驱动器能够正常启动,且能够使用逻辑参数进行访问,说明问题确实是由译码表模块中的无效数据造成的。这也意味着,如果模块PN=33是完好的原始模块(程序可以通过查询P-List命令输出缺陷表),可以通过重建译码表来修复驱动器。