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

7.5 修复工具的用法

修复工具启动后,屏幕上将显示模式选择菜单,选项包括“Standard mode”(标准模式)和“Kernel mode”(内核模式)。

标准模式是修复工具在ROM可读时提供的常规模式。

内核模式设计用于在ROM不可读、ROM固件版本与HDA服务数据不相符或者当ROM固件中的校正数据不是驱动器的原始数据时读/写Flash ROM。内核模式操作的详细介绍参见第7.15节。

选择标准模式时,修复工具将读取驱动器ROM头,以确定固件版本,并根据ROM配置表(模块表、区域分配表等)进行调整。如果ROM不可读,将输出信息“Error reading ROM”(读ROM错误)。

此时,需要按下【Enter】键,并使用一个文件(包含以前读出的ROM数据)来对修复工具进行设置。必须指定包含相应版本的ROM固件文件(ROM版本标识在HDA标签上),否则应按下【Esc】键,使用默认参数运行工具程序。如果修复工具已经读取了ROM,但是不能识别,则将显示如下信息。

          Unknown drive ROM firmware discovered (F/W=xxxx).
          Using default parameters.

以上信息的意思是:发现未知的驱动器ROM固件(F/W=xxxx),使用默认参数。如果xxxx=FFFF,表示已经读出ROM,但是无法识别;如果xxxx=0000,则表示ROM无法读取。

按【Esc】键可以离开当前操作,按【Enter】键将继续操作(这种情况下修复工具可能会发生操作错误),然后显示一个基本的属系型号列表。选定型号并按下【Enter】键,程序会读取驱动器配置表,校验所选驱动器物理参数的一致性。如果匹配,程序将显示主操作模式菜单,如图7-1所示。

图7-1 主操作模式菜单

如果不匹配,则显示如下信息。

          Model adjusted according to the number of physically present heads.

以上信息的意思是:根据存在的物理磁头数调整型号。这一提示表明已经改变了基本的驱动器型号配置。

7.5.1 伺服测试

Fujitsu驱动器的伺服测试(Servo test)操作和其他品牌的驱动器类似。测试完成时,会输出一个包含缺陷扇区数和缺陷磁道数的表,每一项记录都有各自的错误代码。如果缺少错误代码,说明该缺陷超出临界时间。按下【Enter】键,所有发现的缺陷扇区将被移至PL表,缺陷磁道将被移至TS表(MPF3 xxxAT属系的缺陷磁道按缺陷柱面隐藏在CS表中)。如果不需要隐藏缺陷,可按【Esc】键退出。

在伺服测试期间,从表面上看,是一个磁道一个磁道地进行格式化。这是物理格式化,与逻辑格式化(例如工厂格式化)不同。因此,要完成更深入的驱动器测试,也就是依照物理参数完成后续的表面扫描,就必须在每一个表面上从用户数据区开始直至结束运行伺服测试。同样,驱动器逻辑参数测试也必须无错完成工厂格式化。

7.5.2 表面测试

表面测试(Surface test)可以评估磁表面的质量、磁头组件的功能状况、发现和隔离所有缺陷扇区和磁道。表面测试开始前,会出现如图7-2所示的设置选项。

图7-2 表面扫描设置

进行表面测试时,可以选择对全部磁头或部分磁头进行。在这里,选择“No”就可实现。按下【Y】键表示选择“Yes”,按下【N】键或【Space】键表示选择“No”。接下来,需要指定对哪个磁头不进行测试。如果磁盘某个表面有大量错误,致使表面扫描不能完成,可以使用这种模式来初步估计磁表面的状况。

归并入磁道的最小扇区数这个参数用于决定一个磁道上有多少缺陷扇区时将导致整个磁道将被隔离,默认使用最大值。对于MPG-AT/H/E属系,一个磁道上缺陷扇区数超过63个就被认为有缺陷,需要作为缺陷磁道隐藏。对于MPF-AT属系,一个磁道上缺陷扇区数超过63个将导致整个柱面被视为缺陷。

要执行表面测试,必须先进行伺服测试。表面测试完成后,屏幕上会显示包含缺陷扇区数和缺陷磁道数的表,按下【Enter】键,缺陷扇区将被写入PL表,缺陷磁道将被写入TS表(MPF3 xxx AT属系将被写入CS表)。根据归并入磁道最小扇区数参数可以将缺陷转换进缺陷磁道(MPF3 xxxAT属系将转换进缺陷柱面)。

Fujitsu驱动器表面测试的设置菜单包含推荐的默认值,其他参数的意义与其他品牌驱动器的修复工具完全相同,这里不再重复。

7.5.3 磁盘固件区

“Disk firmware zone”(磁盘固件区)命令用于查看和测试保存在ROM和磁盘服务磁道的固件结构、完全重写ROM和磁道上的磁盘服务数据以及重新配置驱动器。该命令的下级菜单如图7-3所示。

图7-3 磁盘固件区

1.ROM操作

“Work with ROM”(ROM操作)命令用于完成读、写和查看驱动器ROM的操作,其子菜单如图7-4所示。

图7-4 ROM操作

“Review of the disc firmware zone in the ROM”(查看ROM中的磁盘固件区)命令用于在屏幕上显示驱动器ROM中的微程序头和模块目录。微程序头显示版本号(固件修订号)、HDA版本(HDA硬件修订号)、代码生成日期(Date)、属系名(Family)、ROM校验和(Checksum)及适配数据的可用性(Adaptive),最后是十六进制的标志字节,一个实例如下所示。

        (C) FUJITSU
        F/W: 80C24E04
        F/WHDA: 82-80C2
        Data: 29/01/2001
        Family: PB-16E HIMALAYA
        Checksum: 480D31C6
        Adaptives: present
        Flags: 81

模块目录展示了当前微程序使用的模块。如果工具没有识别出固件版本(程序启动时会有相应信息),则根据工具启动时选定的驱动器型号使用默认的模块目录和区域分配表。

“Read ROM to file”(读ROM到文件)命令用于读ROM内容并将其保存在扩展名为“.bin”的文件中。选择该选项,必须指明文件名,但不需要指明扩展名。读出的文件保存在当前的PC3000子目录下。只有功能完整的驱动器才能执行该操作,分离的PCB不能执行此操作。

选择“Write ROM from file”(从文件写ROM)选项需再次指定位于PC3000子目录下的扩展名为“.bin”的文件。一旦选定文件,写入过程就会开始。在此期间,驱动器马达停转,ROM微电路被编程,驱动器被重置,马达起转并执行重校准,驱动器报告就绪。如果因某种原因写入过程没能完成或者执行不正确,那么马达就不会起转,屏幕上会显示错误信息。

MPF-AT属系和MPG属系有着大量的固件版本,而且大多不兼容,这是由同一属系HDA结构不同,特别是磁头组件和伺服信息不同造成的,在某种程度上也是由于厂商努力修正错误造成的——尝试做一个固件、PCB版本和HDA类型的对应表但失败了,因为它们的数量太大了(参见第7.11节)。

在内核模式下不带HDA完成PCB写操作,只在ROM微电路校验和与其参考值不匹配时才有可能(当ROM固件损坏或ROM微电路空出时)完成。如果ROM校验和与其参考值相匹配,那么只有当驱动器就绪时,在PCB与HDA组件上才有可能写ROM。但是,这种情形是有可能出现的:错误地写入与电路板不匹配的固件,因而驱动器不能够报告就绪。这种情况下可以把电路板单独(不带HDA)连接到PC3000测试卡上。用镊子把ROM微电路仅有的两条数据线(I/O)短路,打开驱动器电源,移开镊子,这样ROM校验和会不匹配,电路板会立即报告就绪。这时,修复工具就可以加载内核模式并写入相应的固件版本(在第7.15节中有详细介绍)。

“Supported ROMs”(支持的ROM)命令用于输出连接在工具上的ROM版本信息,以及此刻位于配置文件Fujitsu.ini中的ROM版本。当出现新的ROM版本时,用户可以自己将其写入Fujitsu.ini文件(详细操作在第7.18节介绍)。

2.磁盘固件区操作

“Work with disk firmware zone”(磁盘固件区操作)命令用于完成对存储在服务磁道上的磁盘服务数据的操作,其子菜单如图7-5所示。

图7-5 磁盘固件区操作

· 检查磁盘固件结构

“Checking of disc firmware structure”(检查磁盘固件结构)命令运行后,屏幕上会显示一个基本模块列表,如图7-6所示,含义如下。

图7-6 检查固件结构报告

SN(Serial Number)模块:包含驱动器系列号。

HS(Head Select)模块:包含总磁头数和使用的磁头数。

TS(Track Skip, for MPG-AT/H/E)模块:驱动器缺陷磁道表。

CS(Cylinder Skip, for MPF-AT)模块:驱动器缺陷柱面表。

PL(Primary List)模块:驱动器缺陷扇区表。

FI(Factory Information)模块:包含产品生产周期。修复工具只显示驱动器的生产日期。

CI(Components Information)模块:包含HDA部件信息,如磁盘片信息(介质)、磁头信息、前置放大器/转接器微电路信息(HD-IC)、马达信息(DCM)。

ZP(Zones Plan)模块:包含区域分配信息。

SM(Security Master)模块:包含主密码信息。

SU(Security User)模块:包含用户密码信息。

在基本模块列表后显示固件模块列表,各部分含义如下。

#:模块号。

ID:模块描述符。

Name:模块关键名。

Length:以扇区为单位的模块长度。

Output:模块读结果。

Identification:模块头比较结果。

Resource:获取模块的位置。“HDA”表示从服务区获取,“ROM”表示PCB的RAM。对于正确初始化的驱动器,服务区模块将被加载到PCB的RAM中。若驱动器读服务信息出错(HDA错误),除了那些默认从ROM加载到RAM的模块,ROM相应的值也将显示为出错(ROM中的模块错误)。

一个实际的例子如表7-3所示。

表7-3 固件模块列表

· 读/写磁盘固件数据

“Disc firmware data writing/reading”(读/写磁盘固件数据)操作子菜单如图7-7所示。

图7-7 读/写磁盘固件数据

“Write FW form BASE to HDA”(从数据库写固件到磁盘)命令用于把所有必需的数据写入磁盘服务区。如果服务数据损坏,就必须重写它。如果更换了驱动器的电路板(或者改变了ROM程序),新电路板微处理器的控制程序版本与HDA内的微程序不兼容,也需要重写服务数据。为完成这项操作,需要选择“WRITE FIRMWARE FROM DATABASE TO DISK”选项、ROM版本以及合适的服务数据版本。写入时需要设置是写入驱动器RAM还是写入驱动器服务区。为了无错误地写服务数据,应该先选择写入RAM,然后才是写入驱动器服务区。完成写入驱动器后,必须关闭驱动器电源再打开,清除PL表和TS(CS)缺陷表。再次关闭驱动器电源再打开,可以使用PC3K PWR适配器,整个转换过程会自动执行。

程序工具会检查写入的ROM版本与服务数据是否匹配。若两者不匹配,PC3000程序会通知用户:只有兼容模块才可以写入。在这种情况下,即使写入操作成功完成,屏幕上也会出现一条错误信息。

PC3000允许用户创建或补充固件数据库。为把新版本的固件添加到数据库中,必须连接该固件完好的驱动器,然后选择“Add MP to BASE”(增加固件到数据库)选项,输入处理器固件版本和模块名,如“82-80C2 MPG3102AT”。如果增加的固件有错误,可以使用“Delete MP from BASE”(从数据库删除固件)选项删除它。

如果PC3000能够识别ROM,在随后的服务数据读写操作中,就能对从ROM获取的模块列表工作。如果程序不能识别驱动器ROM,所有操作都只对一个缩减的默认模块集进行,但也可能是一个功能绝对正常的驱动器,某些模块却没有被生产商写入。这时,PC3000会提示模块不存在,并提供一个终止读/写操作还是继续的选项。若已知正在操作的驱动器是完好的,可以选择继续操作,操作可以正确完成。上述状况是由厂商生产时的混乱引起的。例如,ROM模块列表中包含模块ID=00H,然而实际的驱动器中并不存在此模块,因此修复工具阻止了它。

· 读模块

“Reading of the modules”(读模块)命令可按照存储在驱动器服务区的顺序读取驱动器服务数据,读出的模块保存在各自的子目录下,如表7-4所示。

表7-4 模块目录

读出的模块的命名规则是“~PR ID NAME.rpm”,其中:“~”为固件模块标识符号;“PR”表示模块类型,“01”为模块来自磁盘,“02”为模块来自RAM,均为十六进制数;“ID”表示模块描述符,十六进制数;“NAME”表示模块名,为2~3个ASCII字符。例如,~010csm.rpm是从磁盘读取的主密码模块SM,~0204hs.rpm是从RAM中读取的磁头选择模块(HS)。

执行读出操作之前,屏幕上会显示可读出的模块目录,可使用【Space】键选择相应模块或者“All modules”(全部模块)选项,如图7-8所示。选择后者将读出全部服务数据模块到各自子目录中。如果子目录中已经存在同名的模块,将不会警告而直接覆盖。

图7-8 选择模块读

· 写模块

“Writing of modules”(写模块)命令用于写服务数据模块到驱动器的服务区或RAM中。执行写入操作前应查看工作目录下全部可用于写入的模块,然后选择相应模块或全部模块。之后,修复程序会让用户选择是将模块写入磁盘还是缓存。

在写入期间,修复工具不会检查模块结构,因此执行该操作时必须非常小心,否则会对驱动器造成无法挽回的破坏。

· 重建译码表

“Regen. Translator”(重建译码表)菜单项用于根据PL表重建静态译码表(DM模块)。重建完整的译码表还需要正确的动态部分(TS模块)。

· 安全子系统

“Safety subsystem”(安全子系统)菜单用于查看或设置密码,需要时可不以破坏用户数据地解除它。

· 清除日志

“Log cleanup”(清除日志)命令用于对包含驱动器运行期间发现的错误列表的模块执行清除操作。这些模块是27h、28h、2Dh(FA)、31h(RE)、32h(WE)、70h, MPGAT/AH属系还包括51h和52h。

3.磁头隔离

“Heads isolation”(磁头隔离)菜单用于软件停用缺陷磁头,也支持反向操作。停用磁头前必须确保缺陷表中没有欲停用磁头的对应缺陷记录,否则必须清空缺陷表。选定此菜单项后,屏幕上会显示正在使用的驱动器磁头列表,此时即可选择要停用的磁头或欲启用的磁头,同时,光标会在第一个磁头的位置上闪烁,按【Space】键可以停用/启用磁头,按【Enter】键可以移到下一个磁头,按【Esc】键可以退出操作,如图7-9所示。除非属系有严格的限制,否则任何磁头都可以被停用。

图7-9 停用/启用磁头

软件停用/启用磁头后必须关闭驱动器电源再打开,并重启修复工具。重启修复工具后驱动器会自动更改型号名(非标准型号除外,参见第7.14节)。

4.主轴停转

“Spindle stop”(主轴停转)命令用于停止驱动器主轴电机,进行电路板热交换操作和恢复用户数据时的操作。

5.适配数据操作

“Work with adaptive data”(适配数据操作)菜单提供了两种操作模式,分别是“Adaptives Transfer”(转移适配数据)和“Adaptives Matching”(匹配适配数据)。

转移适配数据菜单选项用于将适配数据从一个文件复制到另一个文件。此操作对所连接驱动器不进行任何操作。在弹出的窗口中选择源适配数据文件类型和文件名及目标文件,文件类型根据适配数据块的位置决定,包括两种类型,分别是“ROM文件”和“模块文件”。若是ROM文件,适配数据位于偏移FDE0h位置处;若是模块文件(20h),适配数据位于文件开头处。输入所有必需的参数后,修复工具实际执行的是把512字节的适配数据从一个文件转移到另一个文件的操作。

匹配适配数据菜单选项用于从存在的文件集中查找与当前驱动器相匹配的适配数据。为了对一个驱动器进行操作,必须确保固件可以使驱动器不敲盘且迅速进入准备状态(少于1分钟)。适配数据位于PC3000目录的“ADP_DIR”子目录下。修复工具工作时,会从源文件中将适配数据载入RAM,并尝试从磁盘表面读取20h模块。若读取20h模块成功,适配数据可以读取的包含20h模块的文件的文件名和实际读取的20h模块的文件名将出现在报告里。匹配过程随时可以通过按【Esc】键中断。这种情况和完成匹配全部源文件一样,将给出一个简短的关于所执行工件的报告(只包括操作成功的列表),其中包括哪个文件已经处理但不匹配、适配数据匹配的文件名以及加载的20h模块的完整的报告记录(在“ADP_DIR\adp_find.log”文件中)。

7.5.4 驱动器ID

驱动器ID选项用于在屏幕上输出驱动器ID信息。实际上,在这里只能更改序列号。按【Enter】键可以输入新的序列号,按【Esc】键可以取消修改。

7.5.5 格式化

格式化选项用于启动内部低级格式化程序。开始执行格式化操作前,驱动器首先擦除译码表,检查缺陷表中记录的数量和正确性,然后根据缺陷表中的数据,跳过缺陷扇区和缺陷磁道,开始实际的格式化过程。由于完成格式化后还需要重建译码表,因此不能中断格式化过程。如果格式化出错结束,说明存在损坏的伺服信息或缺陷表编译错误(含有非法值或超过限度的值),这种情况下译码表不会被重建,逻辑参数也不能工作。因此,建议在格式化前把服务数据保存到临时文件中以便还原。格式化过程大约需要20分钟,随型号、磁盘盘片状况而异,表面缺陷会导致格式化时间大大延长。

在格式化过程中,遇到PL和TS(CS)表的内容有错误时会立即报错。例如,某些停用的磁头在PL表和TS缺陷表中却有相应的记录,可以通过总的缺陷扇区数和保留下来的磁头的缺陷扇区数的总和之间的差异来表明这个问题。这时,必须重置缺陷表。

还应该记得把缺陷扇区合并为缺陷磁道。MPG驱动器适用下面的阀值。

P-List记录数不能超过5 200个。

一个磁道中的缺陷扇区不能超过63个。

TS表中连续的缺陷磁道不能超过128柱面。

如果出现错误,驱动器寄存器的内容就会显示在屏幕上。这些信息有时是很有用的:04h(ABRT中止)格式化错误表示创建的PL表、TS(CS)缺陷表有错误,如每磁道包含的缺陷超过63个,这时,寄存器1F4和1F5的内容为缺陷柱面数,1F6的内容为磁头数;格式化的18h错误表示伺服信息损坏,寄存器1F3~1F6的内容为伺服域损坏的LBA地址;最后部分的信息用于对驱动器容量进行限制。

7.5.6 逻辑扫描

逻辑扫描使用LBA逻辑参数检查缺陷,测试开始的设置菜单如图7-10所示。Fujitsu驱动器的逻辑扫描方法和其他品牌的驱动器基本一致,这里不再重复。

图7-10 逻辑扫描参数设置

7.5.7 S.M.A.R.T表

“S.M.A.R.T表”菜单用于查看和重设驱动器的S.M.A.R.T参数,从外部文件载入参数,如图7-11所示。

图7-11 S.M.A.R.T表菜单

S.M.A.R.T表位于09h、0Ah、0Bh模块,属性值存储在09h模块,阀值存储在0Ah模块。

复位S.M.A.R.T表命令对有些驱动器型号无效,需要使用“Load S.M.A.R.T.”命令通过加载外部扩展名为“.sma”的文件来重置09h模块的属性值。

7.5.8 缺陷表

缺陷表菜单用于查看、添加、重新编组和清除缺陷表,其子菜单如图7-12所示。

图7-12 缺陷表菜单

“To review defects table”(查看缺陷表)命令用于查看驱动器的重定位缺陷表。首先显示TS缺陷磁道表(对MPF-AT属系是CS缺陷柱面表),然后显示PL缺陷扇区表。MPG-AT/H/E属系的缺陷在缺陷表中按磁头分组,按物理柱面和扇区排序。MPF-AT属系的缺陷在缺陷表中不按磁头排序,而是显示在同一列,并按柱面、磁头和扇区排列。显示缺陷表的同时也显示驱动器上所有的缺陷数量(MPG-AT/H/E属系按磁头排列)。通过查看缺陷表,可以估计用户驱动器的质量和状况。

“Add LBA defect”(添加LBA缺陷)选项:表示添加后必须格式化。

“Add LCHS defect”(添加LCHS缺陷)选项:操作和添加LBA缺陷类似,用于添加逻辑CHS地址缺陷,只适用于8GB以下的驱动器。

“Add physical sector”(添加物理扇区)选项:用于手工输入物理缺陷扇区。该选项对输入假定的表面检测没能发现的缺陷是必需的。例如,进行表面扫描后有如下缺陷。

        Cyl: 745     Sec: 46
        Cyl: 747     Sec: 46
        Cyl: 748     Sec: 46

可以看出,上述缺陷属于划伤,但是没有对746柱面的报告,因此推断该柱面的46扇区也有缺陷,建议隐藏。添加缺陷扇区后必须进行格式化。

“Add physical track”(增加物理磁道)选项:将物理缺陷磁道(MPF-AT属系为柱面)手动添加到缺陷表。

“Group into track”(归并到磁道)选项:将PL表中的缺陷扇区合并为缺陷磁道(对MPF-AT属系是缺陷柱面)。进入此命令后会显示信息“LIMIT OF GROUPING INTO TRACKS”。此选项用于将磁道合并为柱面,将缺陷磁道合并为缺陷柱面(仅限于MPG-AT/AH属系),以及将TS表中的缺陷磁道自动扩大为包含所有磁头的柱面。此操作可以更好地隐藏缺陷。

“Import of logical defect table”(导入逻辑缺陷表)选项:允许从“.bad”文件中增加缺陷表(需要格式化)。

“Erase defects table”(清空缺陷表)选项:选择要清空的缺陷表,使缺陷记录为0。将TS(CS)缺陷表清空以后,必须先关闭驱动器电源再打开。使用PC3K PWR电源适配器,该操作将自动完成。

7.5.9 自动模式

使用修复工具的自动模式检测Fujitsu驱动器的操作与其他品牌大致相同。