4.5 修复工具的菜单结构
在模式选择菜单中选择标准模式,伴随着驱动器的初始化,会出现修复工具的主操作菜单,如图4-8所示。
图4-8 主操作菜单
4.5.1 逻辑扫描
逻辑扫描(Logical Scanning)利用逻辑参数对磁盘表面进行测试,详见第4.8节。
4.5.2 磁盘固件区
Maxtor驱动器固件包含LDR、RAM、RPM模块、SMB模块组等,固件文件都可以在驱动器SA固件区单独备份。Maxtor驱动器对固件要求非常严格,在修复前要先做好全部固件信息的备份工作。不同型号的Maxtor驱动器固件最好不要覆盖写入。在个别案例中,如果驱动器因覆盖了其他型号的固件信息导致无法用备份的信息还原,可通过用同型号驱动器进行热交换的方法来修复这种故障。
磁盘固件区菜单用于对驱动器固件进行操作,通过该菜单可解决大部分固件问题,其下有5个子菜单,如图4-9所示。
图4-9 磁盘固件区子菜单
1.内存缓存操作
“Work with memory buffer”(内存缓存操作)子菜单的读内存缓存区命令和写内存缓存区命令如图4-10所示。
图4-10 内存缓存操作
读内存缓存区的步骤如下。
第1步 选择RAM扇区地址,如图4-11所示。
图4-11 选择RAM扇区地址
第2步 输入RAM文件名,如图4-12所示。
图4-12 输入RAM文件名
第3步 提示RAM读出成功,如图4-13所示。
图4-13 写入成功
在这里,“Start sector”和“Sectors amount”的值都是默认值,不需要修改,只要按【Enter】键即可。输入保存的文件名后按【Enter】键即可完成读取。
写内存缓存和读内存缓存是两个相反的过程。写内存缓存的步骤如下。
第1步 选定写入的RAM文件,如图4-14所示。
图4-14 选择RAM文件
第2步 确定写入,如图4-15所示。
图4-15 确定写入
第3步 修复工具提示RAM写入成功,如图4-16所示。
图4-16 写入成功的提示
这两个命令分别用于读、写内存缓存。当需要使用LDR文件启动驱动器时,这两个命令是必须要使用的。事实上,当使用LDR文件启动驱动器时,一些固件变量并没有被初始化,因此会阻止对固件区的写操作,不过这种方法只限于在ATHENA DSP属系的驱动器上使用。由于它的复杂性,以及直接加载适配数据和加载内存映象同样有效而且更简单、更容易,所以PC3000开发方不认为目前这种操作方法可以用于其他属系的驱动器。当然,PC3000本身并没有禁止将这种方法用于其他属系的驱动器,因此在实际操作中如果需要“死马当活马医”,可以尝试使用与PC3000开发方专家建议的不同的方法。
程序的早期版本在加载LDR文件后使用了加载内存映象的方法来代替固件的初始化,这种方法使工具的使用变得复杂。当前版本已通过测试系统区记录命令解决了这一问题。
2.固件区操作
固件区操作子菜单如图4-17所示。
图4-17 固件区操作子菜单
● 检查磁盘固件结构
“Checking of disc FM structure”(检查磁盘固件结构)命令用于强制读取模块,检测各模块信息是否有错误,并输出模块状况报告,检查过程如图4-18所示,检查结果的意义将在第4.6节进行介绍。
图4-18 固件检测过程
● SA表面检查
“SA surface checking”(SA表面检查)命令使用UBA(Util Block Addressing,应用块地址)编址方式测试固件区表面,如图4-19所示。
图4-19 SA测试过程
● 忽略读错误
“Ignore reading error”(忽略读错误)命令只对读模块(Module Reading)有效,如图4-20所示。
图4-20 忽略读错误
● 读模块
“Reading of modules”(读模块)命令用于读出模块并将其保存到当前“MXDSPMOD”目录或“MXPKRMOD”子目录下。模块名的前4个字符表示模块所在扇区的UBA地址(十六进制格式),冒号后面的4个字符表示模块的长度(十六进制格式)。每个模块有一栏显示的是位置号(PN码),位置号和模块之间的对应关系见第4.6.2节表4-3。选择模块进行读操作如图4-21所示。
图4-21 选择待读模块
● 写模块
“Writing of modules”(写模块)命令首先根据当前“MXDSPMOD”目录或“MXPKRMOD”子目录下的文件列出可选模块,供选择写入系统区。由于模块大多不使用校验和(Checksum)保护,并且其中一些模块的校验和具有不同的算法,因此写模块时不再重新计算校验和。每个模块有一栏显示位置号(PN码),位置号和模块之间的对应关系见第4.6.2节表4-3,写入时不校验位置号的长度。选择模块进行写操作如图4-22所示。
图4-22 选择模块写入
● 读模块组与写模块组
“Reading module groups”(读模块组)命令如图4-23所示,“Writing module groups”(写模块组)命令如图4-24所示。
图4-23 读模块组
图4-24 写模块组
这两个命令提供了对固件区进行操作的另一种方法——允许同时使用另一个磁头(如果有的话)存取固件数据。模块组文件(*.smb)包括所有模块和模块之间的空白空间。这两个命令不是用于修复驱动器的,但是一些故障却可以通过它们来排除。
● 系统服务区写测试
“SA write test”(系统服务区写测试)命令用于加载适配数据,并测定对系统区进行的写操作的正确性,一般用于加载LDR文件后的附加初始化,结果为0表示可正常写入,如图4-25所示,否则表示出错,详细使用方法将在第4.7节进行介绍。
图4-25 系统服务区写测试正常
● 修复模块
“Modules repairing”(修复模块)命令用于修复文件头有错误的模块,使用方法将在第4.7节进行介绍。
● 重建译码表
“Translator regeneration”(重建译码表)命令使用工厂缺陷表(模块PN=33H)重新生成译码表模块,如图4-26所示,使用方法将在第4.7节进行介绍。
图4-26 重建译码表
● 主轴停转
“Spindle stop”(主轴停转)命令将使驱动器进入睡眠模式,用于热交换操作,如图4-27所示。
图4-27 主轴停转
3.加载LDR文件
选择相应的LDR文件进行加载,如图4-28所示。确定后选择加载内容,如图4-29所示,菜单项含义分别为加载ROM与模块、加载ROM、加载模块、只加载微代码6。
图4-28 选择LDR文件
图4-29 加载LDR选项
选择第一项的意思是把这个文件的代码及数据全部加载到驱动器内存,让驱动器初始化。选择第二项表示加载ROM,起转后再加载模块(Load modules,第三项)。选择第四项表示只加载微代码。通常选择第一项,加载成功后会出现如图4-30所示的提示。
图4-30 加载LDR文件成功
如果加载不成功,那么界面上显示为绿色的单词将会变成红色的警告,这时对驱动器的操作都是无效的,按【Enter】键可退回驱动器准备工作菜单。有时常常需要多次加载才能成功。如果多次加载还是不成功,应检查LDR文件是否匹配。如果LDR文件不匹配,可尝试依次选择后3项进行加载。
4.创建LDR文件
使用创建LDR文件命令可以从工作的驱动器创建LDR文件。只有在修复工具启动时所选择的属系与实际连接的驱动器属系相符,此命令才会正确运行,否则将会出现错误或者因创建的文件中包含错误而使数据不能被加载。创建时会给出LDR文件名,如图4-31所示。
图4-31 输入LDR名称
5.安全子系统
安全子系统命令包含查看信息和清除密码选项,前者用于显示当前安全状况和密码设置情况,后者用于清除密码保护。
4.5.3 磁盘ID
磁盘ID命令用于修改驱动器型号名和系列号。这些参数储存在驱动器固件的DISK模块(PN=1FH)中。
4.5.4 缺陷表
缺陷表命令下有子命令查看P-List、查看G-List、将G-List的缺陷移入P-List、清除G-List、清除P-List和G-List、从DEFECTOSCOPE导入。查看P-List子命令用于报告P-List中隐藏的缺陷。
查看G-List子命令用于报告G-List中隐藏的缺陷。报告中的LBA (def)列表示缺陷扇区的LBA地址,LBA (subst)列表示用于替换缺陷扇区的LBA地址,Candidate列包含“候选”缺陷扇区标志。如果Candidate列的标记为“√”,表示此缺陷实际上没有被重定位,此时LBA (subst)列和LBA (def)列是相同的。G-List的容量显示在Capacity行,不同属系的驱动器有不同的容量,例如ATHENA DSP驱动器G-List的容量为“636”。
将G-List的缺陷移入P-List子命令用于将G-List中记录的缺陷移到P-List中。
清除G-List子命令用于清除G-List中的缺陷记录。
清除P-List和G-List子命令用于清除驱动器上所有的缺陷记录以及复位summary表(模块PN=33H)。如果需要保留缺陷信息,可以备份PN=37、PN=18、PN=78、PN=1B、PN=33等模块。
从DEFECTOSCOPE导入子命令可以将DEFECTOSCOPE程序发现的缺陷添加到P-List或G-List中。
4.5.5 自检模式
自检模式命令下有子命令开始自检、停止自检、查看自检状态。
开始自检子命令用于转换驱动器到自检模式。
停止自检子命令用于停止驱动器自检。
查看自检状态子命令用于允许监视自检过程。
关于驱动器自检在第4.8.4节有详细介绍。