只要硬盘可以在正常的模式下启动,PC3000程序就可以隐藏固件区的缺陷。隐藏缺陷使用的是硬盘指令,只有在译码表模块和PN=33h模块正常时才有效。菜单“Checking And Recoverying SA(检查和修复固件区)”中的隐藏缺陷步骤为:读取固件区的模块,隐藏缺陷,然后再将模块写回,避免隐藏却先后造成模块损坏。
此菜单中包含所有的功能,特别是以“交互模式”修复固件区。对固件区结构的分析过程是与修复过程相联系的。
执行这一功能的菜单位置:“工具(tools)”——“Utility extensions”——“SA Checking and recoverying”。
图7显示了执行检查固件区之后的情况。“Modules(模块)”窗口中列出了硬盘固件区中的模块和重要性等级。模块按照UBA地址排列。重要性为A的模块驻留于UBA地址较低的区域,所以在表中位于前列。模块的信息包括:起始UBA地址,ID或PN,占用的扇区数(长度),间断地说明,重要性(点击察看重要性),模块头和校验和的状态。每一行的前端的颜色显示了模块的状态:
A:红色——读取模块时出错
B:黄色——校验和出错
C:粉色——模块头出错
D:绿色——无错
子菜单有(按钮形式):
Start SA Checking(开始检查固件区)——开始读取模块并分析他们的结构,之后会显示模块的状态。在执行这一命令之前需要建立硬盘的模块目录(PC3000下的Profile目录),如果Profile下的目录已经建立,那么读取的模块备份就会放置在此目录下。如果指定的目录下已经存在模块文件,那么他们会被覆盖而不会有提示。为了可以保存同一硬盘的多个模块备份,可以指定于默认目录不同的目录来作为备份的目录。
Rewrite module from DB(从数据库中重写模块)——提供了从数据库中重写选定的模块的功能。在“Rewrite module from Database”对话框中可以查询模块。查询的方式是根据[ROM_SA]的校验和。也可以手动指定模块。如果不能查询,那么应该检查模块的UBA和长度;如果查找的模块是错误的,那么就会将错误的模块写入。
Start SA Checking(开始检查固件区)——开始检查。
Break(终止)——终止检查固件结构或读取模块。
Recovery Module Header And Checksum(修复模块头和校验和)——重建DMCS,U_LIST,AT_POL,AT_PDL和HUTL/HUSR等模块的头部。修复模块头的操作(点击察看详情)。图8显示了修复模块HUTL/HUSR时的对话框中的参数。选项“Improvement header and checksum”中需要指定“HUSR SECTIONS NUMBER(HUSR分段的数量)”,以防模块被破坏后无法恢复分段的数量。[HUTL/HUSR]模块的结构的说明详情点击察看。选项“Clear the table(W/O SA Defects)(清空缺陷表(不包括SA缺陷))”清空HUTL和HUSR,只保留头部和校验和。选项“Cleat all table”只保留模块中的HUTL和一个HUSR。
Show Log(显示记录)——此按钮位于窗口“module(模块)”中,有“开启”和“关闭”两种状态,可以显示检查模块结构的记录。