数据恢复与硬盘修理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

6.5 修复工具的用法

本节介绍Quantum驱动器修复工具的用法。

6.5.1 启动工具

修复工具启动后读取驱动器ID域,如果驱动器不响应该命令,将显示错误信息“Unidentified logical drive parameters”(不能确认驱动器逻辑参数)和“Default values used - "Final LBA" =1000”(使用默认“最终LBA”=1000)。

然后,在出现的“Model selection”(型号选择)窗口选择所连接驱动器的型号。选定以后,修复工具将读取磁盘配置页CP#8(对配置页的详细介绍见第6.6节)的内容,并验证所连接驱动器的磁头数与所选型号的磁头数。若两者不匹配,则显示信息“The model has been corrected according to the number of physically heads”(根据物理磁头数调整型号)。如果无法读取驱动器的配置页CP#8,将显示信息“Error reading CP#8 (page containing the number of physically present heads)”(读CP#8配置页出错)。

接下来,修复工具将分析连接的磁头号(CP#14)和区域分配表(CP#10),如有错误将显示信息“Error reading CP#14 (heads control page)”(读磁头控制页CP#14出错)和“Error reading CP#10 (zone allocation page)”(读区域分配页CP#10出错)。

驱动器初始化过程中出现的错误将被忽略,不能从驱动器读取的参数将被默认值代替,这会导致表面测试程序工作错误。修复工具初始化后将显示主操作模式菜单,如图6-4所示。

图6-4 Quantum驱动器修复工具主菜单

6.5.2 伺服测试

“Servo test”(伺服测试)菜单用于对每个物理磁头分别执行低级格式化操作,无法格式化的磁道将被添加到缺陷表中,其参数设置如图6-5所示。

图6-5 伺服测试的参数设置

伺服测试会破坏所有用户数据。开始与终止柱面值用于确定执行格式化的范围,测试发现的缺陷扇区可以添加到P-List或G-List中,通过按【Space】键切换。最后一个参数是指当有多少个坏扇区时就把该柱面添加到缺陷表。

伺服测试依据磁道和磁头物理参数进行,和区域分配与磁头数一致。测试过程测量格式化1条磁道所花费的时间,其意义和其他品牌驱动器的伺服测试一样,不再重复介绍。测试结果如图6-6所示。

图6-6 伺服测试结果

按【Enter】键将报告发现的缺陷数,如图6-7所示。如果有伺服缺陷,访问时间会很长,并在近乎水平的直线上出现很高的峰线。

图6-7 伺服测试没有发现错误

6.5.3 表面测试

“Surface scanning”(表面测试)菜单用于探测驱动器有效区域的缺陷扇区。表面测试使用物理参数进行测试,会破坏所有用户数据,参数设置如图6-8所示。

图6-8 表面测试的参数设置

通过次数用于确定开始到结束的全过程次数,取值范围为1~100。扇区复审率用于确定测试发现缺陷时分析错误的反应。测试是按磁道成块执行的,当发现错误时操作将转而对该磁道的每一个扇区做分析,此分析的重复次数就是给定的扇区复审率。为加快测试速度,在第一次测试时此复审率总是规定为1,所以此处的选择是针对所有以后的测试使用的复审率,可选范围是1~10。临界时间用于确定执行读出(写入)的等待时间,如果超过设定时间,该扇区就被看做是缺陷,输入范围是40~999,默认值为300,单位为毫秒。降低临界时间时要非常谨慎,如果设置得过低(随驱动器、测试的计算机不同会略有差异),会导致不真实的错误。

接下来,执行写测试。如果要求进行写测试,测试的质量会高一些,但是要多用大约2倍的时间,按【Y】键表示“Yes”,按【N】键表示“No”,按【Space】键表示选择。建议对有表面缺陷的区域单独指定测试范围运行写测试。执行表面扫描以后,屏幕上会按物理CHS列表的顺序显示找到的全部缺陷,按下【Enter】键,全部缺陷将被编入P-List。最后,还需再次格式化才能完成整个过程。测试全部磁头,可以选择对部分磁头执行,按【Y】键表示“Yes”,按【N】键表示“No”,按【Space】键表示选择。如果设置为“No”,接下来需要定义不对哪个磁头进行测试。此模式用于评估磁盘的表面状况,如果某一个或几个表面上错误很多,会影响测试。其他选项的意义同伺服测试。

为正确执行表面测试,最好先做伺服测试,再做表面测试。表面测试完成以后,屏幕上将显示缺陷扇区的列表。按下【Enter】键,缺陷扇区将被添加到缺陷表中。该驱动器的表面测试结果如图6-9所示。

图6-9 表面测试结果

6.5.4 磁盘固件区

“Disc firmware zone”(磁盘固件区)菜单包含对驱动器固件进行操作的一套命令集,其子菜单如图6-10所示。

图6-10 固件数据子菜单

1.对ROM工作

“Work with the ROM”(对ROM工作)菜单用于将ROM读出到文件。

2.对磁盘固件区工作

“Work with disk firmware zone”(对磁盘固件区工作)菜单包括一组对记录在磁盘表面的驱动器固件进行操作的命令,其子菜单如图6-11所示。

图6-11 对磁盘固件区工作子菜单

· 检查磁盘固件结构

“Checking of disk firmware structure”(检查磁盘固件结构)命令用于读出驱动器固件的所有结构单元,包括模块与配置页,并解释检查结果。因为固件区存在不被模块使用的未被格式化的扇区,所以检查过程需要耗费几分钟的时间。检查过程如图6-12所示。

图6-12 固件检查过程

固件检查完成后会输出检查报告,可按光标键前后查看。按【F2】键可将检查结果保存到文件,如图6-13所示。

图6-13 将检查结果保存到文件

写入文件中的检查结果,开始部分是驱动器的配置参数,接着是配置页的总体说明以及几个配置页的细述,然后是服务区的模块说明。即使是在功能正常的驱动器中,某些模块也会出现校验和错误或读错误。哪些出错模块对驱动器功能没有影响已经在各个属系中分别加以说明,详细例子见第6.8.1节的“固件结构”部分。

· 读/写固件

“Write/read firmware”(读/写固件)菜单用于创建包含驱动器固件的数据库文件,如图6-14所示。

图6-14 读/写固件

“Extract FW from base”(从数据库提取固件)命令可将固件(配置页与模块)写入连接的驱动器中,或者只将固件信息从数据库中提取出来并保存到一个指定的目录中,如图6-15所示。

图6-15 从数据库提取固件

将数据写入驱动器,需要分别写入配置页与模块,如图6-16所示。

图6-16 将数据写入驱动器

决定要写入的内容后,就可以从数据库中选择对应的型号,如图6-17所示。

图6-17 选择具体型号

确认型号后,写入过程如图6-18所示。

图6-18 固件写入过程

写完后会重启驱动器,并重新选择型号,然后返回主菜单。

“Add FW to base”(添加固件到数据库)命令用于从磁盘读出模块与配置页到数据库,修

复工具会要求输入固件名以备将来使用,如图6-19所示。

图6-19 输入固件名

选择“Delete FW from base”(从资源库中删除固件)选项,程序会列出一个固件清单,选择相应固件,按下【Enter】键就可以删除它,按【Esc】键可以取消操作,如图6-20所示。

图6-20 删除数据库中的固件

删除完成后,将返回主菜单。

· 读配置页

“Read configuration pages”(读配置页)命令用于将配置页读出并保存到各个单独的文件中,这些文件存储于相应的目录下。可以通过将光标移动到相应的条目上,使用【Space】键切换选中与取消选中(“Select all”表示选择所有条目,“Unselect all”表示取消全部选择),选择完成后按【Enter】键就将开始读取并保存,按【Esc】键则取消读出配置页,返回主菜单。选择要读取的条目,如图6-21所示。

图6-21 读配置页

· 写配置页

“Write configuration pages”(写配置页)是读配置页的相反操作。此命令用于从对应目录中寻找配置页文件,将其显示出来以供选择,并将选中的文件写入驱动器。当长度不符时会提示“~CP**.CP file size differs from expected. Continue ? ”(~CP**.CP文件的长度跟预期的不同,继续吗)。写配置页的操作如图6-22所示。

图6-22 写配置页

· 读模块

“Read modules”(读模块)命令用于将模块读出到文件,可以用【Space】键标记要读出的模块。如果读扇区时发生错误,就停止读取。如果保存的文件大小为0,说明对应模块有错误。读出的模块可保存为RPM文件。选择待读模块的操作如图6-23所示。

图6-23 选择待读模块

· 写模块

“Write modules”(写模块)命令用于选择要写入的模块,当长度不符时提示“~MODF1.rpm file size differs from expected. Recording impossible.”(~MODF1.rpm文件的大小与预期不符,不能写入)。选择写入模块的操作如图6-24所示。

图6-24 选择写入模块

正常的写入过程如图6-25所示。

图6-25 写入模块的过程

· 诊断端口日志

“Detailed COM log”(诊断端口日志)命令用于切换驱动器诊断端口数据输出的开与闭,如图6-26所示。

图6-26 驱动器诊断端口日志的开与闭

成功设置后,屏幕显示如图6-27所示。

图6-27 设置成功

· 安全子系统

对支持用户数据ATA密码保护的驱动器属系,修复工具还设置了安全子系统菜单,分别是“Review password information”(查看驱动器是否设置了密码)和“Clear passwords”(清除密码)。

3.更改配置

“Modification of configuration”(更改配置)命令包括一组用于修改工厂定义配置的命令。选择此项后,显示的菜单如图6-28所示。

图6-28 更改配置

· 更改配置参数

“Configuration parameters changes”(更改配置参数)命令用于更改Cache参数的控制、ECC控制和缺陷重定位运算的标准模式,具体选项如图6-29所示。

图6-29 更改配置参数

对Quantum驱动器的全部属系使用更改配置参数命令,可以按如表6-3所示的内容更改和调整相应的参数。

表6-3 更改配置参数

参数设定后要选择是将其写入驱动器内存还是固件区(SA)。只有写入固件区,参数设置才会起作用,如图6-30所示。

图6-30 参数写入位置

与自动重定位缺陷有关的参数包括utomatic writing reallocation、Automatic reading reallocation和Reallocation Uncorrectable Errors Enables。要禁止驱动器在工作时自动重定位缺陷,必须将这些参数全部设置为“No”。

使用ECC改正读盘错误的参数包括Enable Early correction、Number of Retries和ECC correction Span。打开这些参数可以减少逻辑缺陷数,相应的,关闭这些参数则会增加逻辑缺陷数。

Cache缓存与预取参数包括Prefetch enable、Cache enable、Reading continuous和Write cache Enable。这些参数通常会对驱动器性能造成影响。但是,如果在写盘时突然断电,且将Cache设置为允许的话,数据可能会丢失。

· 关闭磁头

“Software heads cutoff”(软件关闭磁头)并不是简单地将磁头数较少的型号的驱动器的固件写入就能实现,因为还需要保留为每个驱动器的磁头和盘面计算出来的适配参数。驱动器初始化时,也需要测定连接的磁头,如果固件与磁头数不符,就会出现故障,磁头组件MHA就要敲盘并导致主轴电机停转,错误信号指示灯也会不停闪烁。

软件断开磁头是指调整驱动器固件在译码过程中不再使用1个或几个磁头,Quantum驱动器就具有这样的调整能力。只要固件区不落在无效磁头上,磁头组件不出现读出同步错误,就可以进行磁头调整。

但要注意,缺陷表中不得含有被断开磁头的记录。因为如果有这些记录,将涉及这些被关闭了的磁头,自然会出现错误。

关闭磁头是指编辑固件区,调整驱动器固件中的工作磁头数,而无须修改适配数据。选择关闭某个或某些磁头的操作如图6-31所示。

图6-31 关闭磁头

如果按【Esc】键取消关闭磁头,驱动器将重启、选择型号并返回主菜单。确认后,要选择把结果写到什么地方。如果写入驱动器内存,修复工具将重启驱动器,选择相应的型号;如果选择的型号与关闭了部分磁头以后的型号不符,修复工具会根据磁头数进行调整,因此驱动器可以暂时作为另一型号使用;当然,如果驱动器断电重启,该命令就不起作用了,只有写到服务区中才能起作用,如图6-32所示。

图6-32 设置关闭磁头操作的保存位置

接下来,程序会提示需要清空缺陷表,以防止缺陷表里有关闭了的磁头的相应记录,如图6-33所示。

图6-33 提示清空缺陷表

确定后将数据写入缺陷表,也就是进行清空缺陷表操作,如图6-34所示。

图6-34 清空缺陷表

清空缺陷表后会自动重启,并再次选择型号,如图6-35所示。

图6-35 选择具体型号

如果参数匹配,将显示主菜单,如果不匹配,将和前面选择型号的步骤一样,会根据测得的物理磁头数进行调整。

要完成全部操作,还需要调整最大LBA值、重新测试缺陷等。

· 区域隔离

“Zone exception”(区域隔离)命令对Quantum驱动器而言,除了可以在进行译码处理时排除磁头外,还能够对每一个工作区单独更改物理扇区数。对EL、EX、CR、KA、KX和LM属系,磁道上的扇区数指向区域上的全部磁头,而对lct08、lct10、lct20、lct15、D540-K、AS和D740X-6L属系,每个磁头有单独的每磁道扇区数,因此可以为每个磁头独立地指定扇区数。

要从译码表隔离工作区,可以设定相应区域的每磁道扇区数为0。执行伺服测试时只要有一个缺陷被添加到P-List,强制更改就立即生效。如果不添加缺陷,译码表不会重新计算,更改也就不会生效。

区域隔离步骤如下。

第1步 确定要隔离的区域。例如,区域1(数据区从1开始编号)在表面扫描时发现有大量缺陷,选择“Zone exception”选项,如图6-36所示。按【Enter】键后将显示各区域的SPT参数,如图6-37所示。

图6-36 区域隔离

图6-37 各区域的SPT

第2步 选中要更改的区域,在区域记录上按下【Enter】键,设置SPT(Sector per track,每磁道扇区数)为0。如果驱动器的每个磁头都有自己的区域表型号,就能看到该菜单。在那里可以进一步选择要更改的磁头,将各个磁头的SPT设定为0。如果程序不支持对各个磁头单独设置,就表示已经完成了相应设置,如图6-38所示。完成以后,按【Esc】键,程序会询问将所做的修改保存在何处,如图6-39所示。

图6-38 将SPT设置为0

图6-39 保存所做的修改

第3步 选择将修改保存至服务区,程序将控制驱动器重启,并提示清空缺陷表。完成后选择驱动器型号,返回主菜单。

第4步 清空缺陷表。

第5步 执行伺服测试和表面扫描。

第6步 选择相应缺陷表菜单,隐藏第5步中发现的缺陷。

第7步 执行逻辑测试,确认该区域被正确隔离。

不推荐将区域中的扇区数更改到少于工厂内定值的一半以下,因为这会导致该区域的工作错误。如果一个要隔离的区域位于驱动器可操作区域之前或之后,也会导致驱动器使用时出错。另外,缺陷表中不得包含隔离区域的记录。

4.加载LDR文件到磁盘RAM

“Load LDR file to drive RAM”(加载LDR文件到磁盘RAM)命令可用于直接输入或选择将要加载到磁盘RAM的LDR文件名,加载后驱动器将重启。选择的文件与待处理驱动器必须相符。如果LDR文件不匹配,将无法加载成功,修复工具可能提示不相符或者没有任何反应。当然,这项操作也不会对驱动器产生影响。选择LDR文件的过程如图6-40所示。

图6-40 选择LDR文件

如果选择的LDR文件与驱动器相匹配,就会出现如图6-41所示的加载过程。

图6-41 加载过程

虽然文件匹配,有时候也可能无法一次加载成功,需要多尝试几次。加载成功的提示如图6-42所示。

图6-42 加载成功

LDR文件加载成功后,就可以对固件进行一定的修复操作。那么什么是LDR呢?驱动器启动的时候,会运行ROM中的程序。该程序同时在驱动器的固件中有备份,驱动器正常启动时不仅需要运行这些程序,还需要读取盘片上固件中的数据。如果在这些过程中出错,驱动器就会中止运行,也就是不能到达就绪状态。此时,驱动器将进入停止状态,引导程序结束。如果驱动器初始化出错,就需要根据出错原因进行修复,因为只有ROM中的程序才能访问驱动器的固件。LDR文件就是Loader程序,用于将存储在外部的ROM程序加载到驱动器RAM中运行。因此,加载LDR文件,就是通过ATA的“DOWNLOAD MICROPROGRAM”指令把外部文件形式的ROM程序加载到驱动器RAM中,让驱动器重新启动,以访问驱动器固件。DSP重新启动后,就可以从ROM中的第一条指令开始执行。DSP在加电或者RESET时都可以重新启动,这就是热插拔的前提。

有些时候可能需要多次加载LDR文件才能成功。而有些型号的驱动器加载LDR文件后还需要加载RAM,这是因为ROM中的程序可能无法执行完,执行到某个位置就执行不下去了,需要对其进行干预,把程序调整到正确的位置,因为一般驱动器只有在启动时才会读取固件中的内容,启动后就不需要了。RAM文件正是ROM正常状态下的运行环境,所以RAM加载好以后,ROM中的程序才可以调用RAM正常读写磁盘中的内容,这个时候,才可以对固件进行修改。

驱动器的主处理芯片使用的是RISC指令集,尤其是现在的驱动器,主处理器集成度越来越高,已经出现了将马达控制器、读/写通道、接口、存储器等集成在一起的真正的“片上系统”,而且驱动器一共使用5种纠错方式,运算量巨大,所以处理过程是很复杂的。任何一个关键环节出现问题,都会导致驱动器不能到达就绪状态。

那么,什么是overlay呢?overlay是一种编程方式。例如,普通的单片机程序在单片机运行时其程序代码都要载入存储器中运行,而overlay可以只将需要的程序载入存储器,在适当的时候再将其他程序载入存储器,先前的程序将被“overlay”(覆盖)。由于它们在地址上是重叠的,因此可以节省内存空间,有点类似于PC的虚拟内存。怎样将程序代码划分为overlay是编程时由编译器决定的。编译器会检查哪些程序是可以接受地址重叠操作的。这些与修复驱动器没有直接联系。

5.主轴停转

“Spindle stop”(主轴停转)命令用于切换驱动器到节能模式,使磁头回到停泊区,主轴电机停转。进行热交换操作时就需要停止磁头工作并停转主轴电机。主轴停转后的提示如图6-43所示,按【Enter】键可回到主菜单。

图6-43 主轴停转

在主菜单下进行操作,就可以直接唤醒主轴电机,使驱动器进入工作状态,且不需要专门的指令来取消主轴停转指令。

6.5.5 磁盘ID

“Disc ID”(磁盘ID)命令用于更改磁盘ID域(Drive ID,驱动器ID)保存的驱动器逻辑参数、型号名和序列号。可以在工厂值以内强制设定最大LBA值,并将其视同低容量的型号。个别型号的序列号不只是一个完全没有意义的序数,因此它们对更改序列号可能会有一些特殊要求。例如,左起第三位同时代表物理磁头数,如果它的数值不符合驱动器的实际磁头数,驱动器有可能不能正确初始化(加电时敲盘然后停止)。

选择此选项后,驱动器会先复位,如图6-44所示。

图6-44 复位

复位完成后,将显示一个对话窗口。这时可以更改驱动器的逻辑参数、最大LBA值、型号名和序列号,如图6-45所示。

图6-45 修改磁盘ID

修改完成后一样需要选择是将其写入RAM还是SA中,且都可以按【Esc】键取消。无论是写入RAM,还是写入SA,都会重启驱动器,并回到主菜单。当然,只有写入SA中操作才会真正生效。

6.5.6 逻辑扫描

“Logical scanning”(逻辑扫描)命令以逻辑参数对磁盘表面进行扫描测试,参数设置如图6-46所示。

图6-46 逻辑扫描参数设置

反向测试选项用于指定测试方向。驱动器是向前读取数据的,所以,正向测试比反向测试的速度要稍微快一些。是否执行写测试选项用于选择测试时是否进行写盘测试。用对扇区的校验来替代读出可以提高测试质量,但也会增加测试时间。按【Y】键表示“Yes”,按【N】键表示“No”,按【Space】键进行选择,其他参数的设置方法与表面扫描相同。

逻辑扫描参数设置窗口(如图6-46所示)的第一段提示此测试会破坏磁盘上的所有数据。

选择好参数后,驱动器复位,然后开始扫描过程,如图6-47所示。

图6-47 逻辑扫描过程

扫描结束后,所有发现的LBA缺陷扇区将显示在屏幕上。按下【Enter】键,所有缺陷将全部转换为物理地址并显示出来。再次按下【Enter】键,全部缺陷扇区将被添加到P-List或G-List中。

6.5.7 S.M.A.R.T表

“S.M.A.R.T. table”(S.M.A.R.T表)菜单下包括一组用于查看和更改S.M.A.R.T数据的命令,有查看、加载和重置3个选项,如图6-48所示。

图6-48 S.M.A.R.T表子菜单

1.查看S.M.A.R.T表

“View S.M.A.R.T. table”(查看S.M.A.R.T表)命令用于输出S.M.A.R.T属性值报告,如图6-49和图6-50所示。

图6-49 S.M.A.R.T表的一部分(1)

图6-50 S.M.A.R.T表的一部分(2)

这些参数的含义已经解释过,不再重复。

2.加载S.M.A.R.T的外部模块

“Load S.M.A.R.T. (external module)”(加载S.M.A.R.T的外部模块)命令需要一个含有工厂内置属性值的*.sma文件,可以通过对从驱动器读出的ID=70h模块进行重命名获得,其中的各项具有各自的属性值。此复位方法并不影响ID=5模块和ID=195模块的参数计算,驱动器启动时会基于隐藏在G-List中的扇区数来计算它们。要设定它为工厂值,还必须转移G-List缺陷到P-List中。

复位S.M.A.R.T工厂值以后需要进行断电和重新加电的操作,如果跳过这一步,选择查看S.M.A.R.T记录选项,驱动器仍将返回以前的记录值。

3.复位S.M.A.R.T工厂属性值

“Clear S.M.A.R.T. parameters”命令是Quantum驱动器自带的复位S.M.A.R.T属性值的功能。除了重定位扇区数以外,该命令可用于复位全部S.M.A.R.T参数到最佳值。

6.5.8 缺陷表

“Defect table”(缺陷表)菜单中包括一组对缺陷表工作的命令,其子菜单如图6-51所示。

图6-51 缺陷表子菜单

1.查看缺陷表

“To review defects table”(查看缺陷表)命令用于评估驱动器盘片的质量和状态。该命令可以输出一个包含重定位扇区的缺陷报告,首先是总缺陷数,然后是各磁头的统计和各区域的分布,最后是缺陷列表,如下所示。

        Total defects count : 156

        Defects allocation by heads :
        H0: 39  H1: 39  H2: 39  H3: 39

        Defects allocation by zones :
        Zone  1:   0
        Zone  2:   0
        Zone  3:   0
        Zone  4:   0
        Zone  5:  12
        Zone  6:  12
        Zone  7:  12
        Zone  8:  24
        Zone  9:  12
        Zone 10:  12
        Zone 11:  12
        Zone 12:  24
        Zone 13:  12
        Zone 14:  12
        Zone 15:  12

        List of defects :

          #   Error codes    Cylinder     Head        Sector    List
        ------------------------------------------------------------
          1      2CH            3845          3         327       P  (TRACK)
          2      2CH            3845          2         327       P  (TRACK)
          3      2CH            3845          1         327       P  (TRACK)
          4      2CH            3845          0         327       P  (TRACK)
          5      2CH            3846          0         327       P  (TRACK)
        …………
        154      2CH          11548          1         208       P  (TRACK)
        155      2CH          11548          2         208       P  (TRACK)
        156      2CH          11548          3         208       P  (TRACK)

Quantum驱动器的缺陷表存储在ID=61h模块中。使用不同方法添加到P-List和G-List中的缺陷都可以通过一种方法读取和输出。添加缺陷到G-List需要一个一个地完成,而添加缺陷到P-List是一次性整体完成,这意味着加载擦除先前添加的一条缺陷记录也会擦除先前添加的所有P-List和G-List缺陷记录。因此,添加一条记录到P-List时,需要先把P-List的内容读出来,然后添加相应的记录,再把整个P-List写回驱动器。但由于加载程序也没有再提供可以选择的缺陷表,所以只要添加一个缺陷到P-List,程序就会自动强制把G-List中的记录转移到P-List中。

最后一部分缺陷列表的格式如表6-4所示,List栏指明了缺陷记录属于当前哪个表(P-List或G-List),隐藏的磁道记录同样如此。

表6-4 缺陷表格式

错误代码的结构如表6-5所示。

表6-5 缺陷表错误代码

例如,错误码“24H”表示工厂缺陷和“inline defect”(译义不明,可能是内嵌缺陷)。

2.添加LBA缺陷扇区

“Add LBA defect”(添加LBA缺陷)命令以LBA逻辑参数添加缺陷扇区,使用开始和大小的方式进行添加(与其他添加缺陷扇区的方式类似),如图6-52所示。

图6-52 以LBA方式添加缺陷

修复工具会自动对新添加的缺陷与前面添加的缺陷进行归并处理,【Enter】键用于继续添加,【Esc】键用于结束添加,并显示添加的缺陷,【↑】键和【↓】键用于前后查看。添加结束后,按【Enter】键表示确定,按【Esc】键表示取消,按【F2】键表示将这些缺陷记录到文件中,如图6-53所示。

图6-53 添加完毕

如果确认添加,程序将自动进行转换。转换完成后,会显示相应的物理参数。添加完成后,还有一个写入缺陷表的过程,写入时间视具体情况而有所不同。

添加缺陷后需要执行格式化操作。

3.添加物理扇区

“Add physical sector”(添加物理扇区)命令以物理参数方式手工添加缺陷扇区,操作与以LBA方式添加缺陷扇区类似。

4.添加物理磁道

“Add physical track”(添加物理磁道)命令以手工方式加入缺陷磁道,输入柱面号和磁头号即可完成一个磁道的添加。这个命令对添加表面扫描没有发现的潜在的缺陷磁道非常有用,例如通过表面测试发现的以下缺陷。

        Cyl:383 Head:1     Cyl:384 Head:1     Cyl:385 Head:1
        Cyl:387 Head:1     Cyl:390 Head:1     Cyl:391 Head:1
        Cyl:392 Head:1

这很可能是刮擦,但由于没有386柱面、388柱面和389柱面,因此推荐添加386柱面、388柱面和389柱面,并在前后分别添加382柱面和393柱面,然后执行格式化操作。

5.归并磁道

“Grouping defects into tracks”(归并磁道)命令用于设定当一个磁道有多少个缺陷扇区时就将该磁道封闭,因此需要先指定一个临界值,然后由修复工具搜索整个缺陷表,当某一磁道中的缺陷扇区数达到或超过了此值,该磁道就被看作缺陷磁道并被添加到缺陷表中,原有的缺陷扇区记录则从缺陷表中删除。因此,此命令运行时,程序会先根据设定值进行计算,然后更新缺陷表,更新完毕将返回主菜单。

6.导入逻辑缺陷表

“Import of logical defects table”(导入逻辑缺陷表)命令用于载入PC3000中的存档文件,或者由PC-DEFECTOSCOPE缺陷检测程序检测后存档形成的缺陷文件(扩展名为“.DFT”),并将载入的缺陷文件保存到缺陷表中。该命令运行时首先选择缺陷文件,然后根据其内容列出文件中所包含的LBA方式的缺陷记录,提示按【Enter】键继续执行命令。按【Enter】键后,会将LBA缺陷转换成CHS缺陷,并列出转换后的缺陷,如果有转换错误,也会相应列出。按【Enter】键继续执行命令,将转换成功的缺陷添加到缺陷表中。

7.清空缺陷表

“Erase defects table”(清空缺陷表)命令用于清空全部缺陷表,清空之后就不再有缺陷记录了。

8.输出缺陷表

“Defects tables export”(导出缺陷表)命令用于将缺陷表内容输出到一个具有特定格式的缺陷记录文件中,文件名由用户指定,扩展名为“.QDT”。运行该命令将提示输入保存的文件名,扩展名不需要输入。

9.输入缺陷表

“Defects tables import”(导入缺陷表)命令用于把先前输出的缺陷表写入驱动器。该命令运行后将列出扩展名为“.QDT”的文件列表,等待用户选择缺陷文件。用户选择文件后,需要确定将缺陷文件中的缺陷写入驱动器内存还是SA中。当然,只有写入SA中才能起作用。如果记录不相符,修复工具会将其排除。

10.对ID=60h模块工作

固件模块ID=60h是工厂缺陷表的备份,可以很容易地恢复。“Word with module 60h”(对60h模块工作)命令强制读出模块并输出其中的缺陷报告,如图6-54所示。

图6-54 输出缺陷记录

确认后可选择取消或运行输出缺陷表命令将缺陷保存成扩展名为“.QDT”的文件,如图6-55所示。

图6-55 保存缺陷

保存完成后返回主菜单。

11.小结

Quantum驱动器的缺陷表保存在ID=61h模块中,读出缺陷表只有一个方法——同时输出P-List和G-List,添加缺陷记录就是添加它的值(将缺陷记录写入ID=61h模块中)。但添加G-List与添加P-List采用了不同的方法。将缺陷添加到G-List时可以一个一个添加,而将缺陷添加到P-List时是同时全部添加。这意味着:要添加缺陷到P-List,首先需要读出全部的缺陷表,对它添加缺陷记录,然后将缺陷表写回驱动器;加载以后,尽管只是添加1个缺陷到P-List中,G-List中的缺陷也都将全部自动转到P-List中。

添加LBA缺陷、添加物理扇区、添加物理磁道、输入逻辑缺陷表、归并成磁道和输入缺陷表命令都会导致将G-List的内容全部转移到P-List中。

隐藏在P-List中的缺陷在换算物理CHS到LBA时会被跳过。如果隐藏的是磁道,驱动器将不再获取它的位置。清空P-List会强制重算译码表,所以早先在驱动器逻辑数据空间中隐藏的扇区就会再次出现。将包含数据的驱动器的P-List清空,数据就会被移动到驱动器的最大LBA之外。隐藏在G-List中的缺陷可以重定位到备用扇区,所以添加重定位扇区之前要对空间重新进行部署。替代操作需要花费一些时间。驱动器读取隐藏在G-List中的扇区时会降低速度。

运行清空缺陷表命令,让ID=61h模块的所有复本都不起作用,这样的操作对恢复译码表功能是不够的,在随机读取时会出现明显的故障——驱动器的MHA磁头组件将反向敲击限位器,导致驱动器敲盘。这时,最少隐藏1个记录到P-List,就可以正确地重建译码表。

如果驱动器中只有很少的缺陷扇区,可以跳过物理参数测试,只做逻辑测试。这样做可以大大加快测试速度,而且测试质量不会下降。更改“ECC correction”参数为“off”可以防止不稳定的扇区进行自动补偿,从而使识别它们变得容易。

6.5.9 自动模式

“Automatic mode”(自动模式)命令用于创建一个测试序列,并自动运行该测试序列,可选测试项包括“SERVO TEST”、“SURFACE SCANNING”、“FORMATTING”和“LOGICAL SCANNING”。对这些选项可以任意进行组合,同一项测试还可以多次进行,每增加一种测试,都要设置具体的测试参数,其操作同其他品牌的驱动器一样。一种组合测试方案如图6-56所示。

图6-56 一种测试方案

测试完成后的部分测试报告如图6-57所示。

图6-57 测试报告

6.5.10 驱动器自检

“SELFSCAN”菜单用于启动驱动器自检程序。Quantum驱动器的自检(Self-Test)方法有两种,分别是工厂级Self-Test和S.M.A.R.T级Self-Test。

使用启动SELFSCAN或加载SELFSCAN命令可以初始化工厂级Self-Test,扫描前必须清空缺陷表。启动自检时需要将关键值更改为“SELFSCAN”,并清除状态信息。加载后必须断开驱动器的电源,取下驱动器的电源线和数据线,把驱动器重新连接到独立电源。通电后,驱动器将初始化并重校准,关闭LED灯并等待1分钟。之后,将点亮LED灯,启动Self-Test过程,期间LED灯通过闪烁指示当前的测试号。测试结束,如果有错误,状态灯将缓慢闪烁,如果没有错误,状态灯将快速闪烁。可以连接驱动器的COM端口到计算机终端以监控Self-Test的进度。

如果驱动器未能通过测试,关闭驱动器电源再打开,可重新启动测试。如果要停止测试,需要在PC3000下执行“STOP SELFSCAN”命令。

S.M.A.R.T级Self-Test是大多数ATA驱动器支持的工厂通用测试,详情请参阅PC-3000AT程序关于该模式的描述。

注意:激活自检模式后,驱动器会覆盖其部分固件模块,并在运行时重建它们,如果Self-Test出错结束,一些模块将不起作用,从而导致驱动器无法工作。因此,启动Self-Test测试前要保存全部固件模块。

“SELFSCAN”菜单下有4个选项,分别是查看SELFSCAN状态、启动SELFSCAN、加载SELFSCAN和停止SELFSCAN。

1.查看SELFSCAN状态

“Status review”(查看SELFSCAN状态)命令用于输出当前SELFSCAN测试的状态。如过测试顺利完成,其键值是“PASS”,否则是“FAIL”。

2.启动SELFSCAN

“Start SELFSCAN”(启动SELFSCAN)命令用于激活并使用工厂保存在磁盘上的Self-Test程序。该命令可将关键值更改为“SELFSCAN”。

3.加载SELFSCAN

“Load SELFSCAN”(加载SELFSCAN)命令用于加载外部SELFSCAN测试模块。该测试模块就是扩展名为“.sso”的文件。选择相应文件并按【Enter】键,会提示是否加载成功。

4.停止SELFSCAN

“Stop SELFSCAN”(停止SELFSCAN)命令用于停止自动启动的SELFSCAN过程,更改“SELFSCAN”关键值为“STOPPED”。