5.8 用软件方法修复IBM驱动器
下面介绍使用工具软件修复IBM驱动器的方法。
5.8.1 识别和重定位用户区缺陷
修复工具提供的缺陷扇区软件重定位机制用于使用自动重定位法将缺陷扇区隐藏到G-List中,以及手动编辑G-List(RDMT)和柱面缺陷表(SRVM)。
非常小的可忽略的损坏的重定位运算法则非常简单。由于接触不良引起的故障的解决方法详见第5.11节。本节介绍轻微故障的诊断,并描述主电路的缺陷。
第1步 进行工厂格式化。如果能正常完成(无错误),则表示没有严重损坏。
第2步 执行逻辑扫描并重定位缺陷至G-List(使用物理参数测试目前还不能自动把缺陷添加到相关表中)。
第3步 只要发现缺陷,就执行重建译码表操作。在此过程中,G-List中的缺陷将被移动到P-List中,然后清除G-List。应该注意,由于这个特殊操作是在驱动器内由驱动器执行专门的转移算法完成的,所以候选缺陷不会从G-List转移到P-List中。这可以解释为驱动器把候选缺陷看成不能稳定访问的区域。如果仍然希望把候选缺陷转移到P-List中,可进入RDMT编辑器(依次选择缺陷表、编辑器选项)对“如何处理候选缺陷”问题回答“转换至P-List”,并立即保存P-List。之后,重建译码表的操作会自动完成。
第4步 再次运行逻辑扫描,只要发现缺陷,返回至第3步。
工厂格式化还允许局部格式化受到严重破坏的伺服域,它可能随后被隐藏至柱面缺陷表。既然修改柱面缺陷表将使P-List和G-List里所列的缺陷无效,那么执行该操作后有一个特殊要求就是清除P-List和G-List。
此外,无法通过自动重映射机制排除的缺陷,可以使用程序内置的编辑器手工加入G-List(RDMT)。编辑完G-List后,程序将自动重建译码表。
也可以将DEFECTOSCOPE发现的缺陷导入缺陷表,详细内容可参考第5.5.7节。
5.8.2 修复开放模块表不可读故障
开放模块表是一个合成表,也就是说,它并不是作为一个完整的数据块实际存储在磁盘面上的表。开放模块表是由OVR4(OVR1模块包含数个overlay,其中就包括OVR4)基于驱动器几何原理生成的。此表是由驱动器响应一个不属于工厂命令集的特殊命令返回的,因此,不可能从不完全初始化的驱动器中产生(进而获得)此表。以下原因可能导致出现这种情况。
问题1:RSVD不可读。
问题2:USAG中的模块不可读。
问题3:USAG模块中包含“垃圾”。
问题4:模块间扇区(空白空间)不可读。
问题5:磁盘面上的NV-RAM镜像损坏(开始于WRT0模块)。
问题6:不正确的固件升级或修复导致的固件模块不兼容。
问题1~问题3可以通过从兼容固件重写相应模块来解决。问题4可以使用修复固件区菜单项来解决,或者通过模块集重写相应的空白空间来解决。问题5可以通过写入驱动器自身的NV-RAM来修复(首先将NV-RAM读出,然后再将文件写回NV-RAM)。驱动器会将它写入WRT0模块开始的固件区。问题6需要根据模块功能逐一与样本进行比较和分析,以排除不兼容的模块。
所以,排除此类故障的通用步骤如下。
第1步 写入驱动器自身的NV-RAM。
第2步 检查固件区结构,找出损坏的模块和空白空间。如果有,覆盖写入相应固件。
第3步 如有必要,修复固件区。为加快速度,可以先清除固件区,然后将其自身的模块写回驱动器。注意,在这种情况下,一些原始模块、不可读模块,特别是一部分“开放”模块将会丢失。
如果以上操作无法解决问题,可能需要找出包含“垃圾”信息的模块,或者进一步诊断控制电路板和驱动器HDA来找出不兼容的模块。