IBM日立硬盘修复手册原文秘籍.docx
《IBM日立硬盘修复手册原文秘籍.docx》由会员分享,可在线阅读,更多相关《IBM日立硬盘修复手册原文秘籍.docx(36页珍藏版)》请在冰豆网上搜索。
IBM日立硬盘修复手册原文秘籍
IBM
22GXP,34GXP,37GP,40GV,75GXP,60GXP,120GXP
1.驱动器分类
属系,程序
型号
容量,Gb
磁碟
磁头
物理柱面
扇区/磁道
最大LBA
22GXP,
pcibmdjn.exe,
ver.1.15
DJNA-372200
DJNA-371800
DJNA-371350
DJNA-370910
22.60
18.04
13.57
9.11
5
4
3
2
10
8
6
4
15400
15400
15400
15400
351-214
351-214
351-214
351-214
44,150,400
35,239,680
265,20,480
17,804,440
34GXP,
pcibmdpt.exe,
ver.1.15
DPTA-373420
DPTA-372703
DPTA-3702050
DPTA-371360
34.21
27.37
20.52
13.67
5
4
3
2
10
8
6
4
17493
17493
17493
17493
450-270
450-270
450-270
450-270
66,835,440
53,464,320
40,088,160
26,712,000
37GP,
pcibmdpt.exe,
ver.1.15
DPTA-353750
DPTA-353000
DPTA-352250
DPTA-351500
37.50
30.00
22.52
15.02
5
4
3
2
10
8
6
4
17687
17687
17687
17687
522-280
522-280
522-280
522-280
73,261,440
58,600,080
43,985,088
29,336,832
40GV,
pcibmdtl.exe
ver.1.15
DLTA-305040
DLTA-305030
DLTA-305020
DLTA-305010
41.17
30.73
20.57
10.27
2
2
1
1
4
3
2
1
34326
34326
34326
34326
792-370
792-370
792-370
792-370
80,418,240
60,036,480
40,188,960
20,074,320
75GXP,
pcibmdtl.exe
ver.1.15
DLTA-307075
DLTA-307060
DLTA-307045
DLTA-307030
DLTA-307020
DLTA-307015
76.86
61.49
46.11
30.73
20.57
15.36
5
4
3
2
2
1
10
8
6
4
3
2
27724
27724
27724
27724
27724
27724
702-351
702-351
702-351
702-351
702-351
702-351`
150,136,560
120,103,200
90,069,840
60,036,480
40,188,960
30,003,120
60GXP,
pcibmavr.exe,
ver.1.15
IC35L060AVER07
IC35L040AVER07
IC35L030AVER07
IC35L020AVER07
IC35L010AVER07
61.49
41.17
30.73
20.57
10.27
3
2
2
1
1
6
4
3
2
1
33946
33946
33946
33946
33946
780-373
780-373
780-373
780-373
780-373
120,103,200
80,418,240
60,036,480
40,188,960
20,074,320
120GXP,
pcibmava.exe,
ver.1.15
IC35L120AVVA07
IC35L000AVVA07
IC35L080AVVA07
IC35L060AVVA07
IC35L040AVVA07
IC35L020AVVA07
123.52
102.93
82.34
61.49
41.17
20.57
3
3
2
2
1
1
6
5
4
3
2
1
55443
55443
55443
55443
55443
55443
928-448
928-448
928-448
928-448
928-448
928-448
241,254,720
201,045,600
160,836,480
120,103,200
80,418,240
40,188,960
注:
属系名称中的字母“X”表示此系列驱动器的转速为7200rpm。
2.程序菜单
2.1.启动程序
程序启动时提供两种模式选择:
“标准”和“默认”。
以“标准”模式启动时驱动器使用自身的参数进行初始化;以“默认”模式启动时,驱动器不再读取自身的数据,并且忽略内部的故障。
当驱动器固件数据损坏导致停止响应或者发出敲击声音时,应该选择“默认”模式。
下面详细的介绍“标准”模式(“默认”模式会在必要时提及)。
程序启动时首先读取磁盘ID;如果此时出错则显示信息:
Unidentifiedlogicaldriveparameters(无法识别的驱动器)
Defaultvaluesused–“FinalLBA”=1000(使用默认值--“结束LBA”=1000)
从磁盘ID中提取的驱动器型号等信息会显示在窗口的顶端“MODEL(型号):
”行。
然后程序提示选择驱动器的型号。
之后程序会按照下面的步骤进行配置:
1.读取NV-RAM以获得驱动器的某些内部参数。
如果出错显示信息:
“ErrorreadingNV-RAM.Usingdefaultparameters(读NV-RAM出错,使用默认参数)”。
2.读取模块列表(“USAG”)。
如果出错显示信息:
“Modulestablecannotberead.Docontinue?
(模块列表不可读,继续吗?
)”。
3.读取所谓的“openmodulestable(开放的模块列表)”(正确初始化后由驱动器返回的一个表)。
如果出错显示信息:
“Openmodulestablecannotberead(开放的模块列表不可读)”。
4.读取固件区配置模块(“ZONE”)。
如果出错显示信息:
“Errorreadingzoneallocationmodule.Defaultzoneallocationused(读固件区配置模块出错。
使用默认的固件区地址分配)。
”如果此模块读取成功,则根据此模块配置驱动器磁头数;如果用户选择驱动器型号不正确,则根据最小值配置磁头数并显示信息:
“Modeladjustedaccordingtothenumberofphysicallypresentheads.(请根据实际磁头数选择驱动器型号)。
按[Enter]”。
关于上面各条出现的出错信息请见下面的故障分析和解决的方法。
2.2.程序的使用
进入PC-3000后显示如下的主菜单:
Servotest(饲服系统测试)
Surfacescanning(磁盘表面扫描)
Firmwaredata(固件数据)
DriveID(驱动器ID)
Formatting(格式化)
Logicalscanning(逻辑扫描)
S.M.A.R.T.table(S.M.A.R.T表)
Defectstable(缺陷表)
Automaticmode(自动模式)
SELFSCAN(自检)
Exit(退出)
2.2.1.饲服系统测试,磁盘表面扫描
与PC-3000中其他品牌驱动器的程序不同,此版本的程序中的Servotest(饲服系统测试)和Surfacescanning(磁盘表面扫描)命令不能完成隐藏和调整缺陷的工作。
这两个命令只是用于检测有问题的磁头,因此在处理那些不是很严重的故障时不推荐使用这两个命令。
执行Servotest(饲服系统测试)命令后在LBA方式下不能再访问驱动器,需要再执行Formatting(格式化)命令才能恢复正常。
2.2.2.固件数据
选择此项后进入子菜单:
Workwithmemroy(存储器操作)
Workwithfirmwarezone(固件区操作)
Modifyconfiguration(修改配置)
RunanLDRfile(运行LDR文件)
Translatorrecalculation(译码表重建)
Spindlestop(主轴停转)
Enablewritecache(启用写入缓存)
2.2.2.1.存储器操作
Workwithmemory(存储器操作)下有子菜单:
WorkwithROM(ROM操作)
ReadRAMintoafile(读RAM到文件)
WorkwithNV-RAM(NV-RAM操作)
WorkwithROM(ROM操作)查看ROM中的数据,或读ROM到文件。
查看ROM时显示以下信息:
--firmwareversionnumber(固件版本号)(例如,A45A)。
固件版本号中的头两个字符应与NV-RAM中的μ-码的前两个字符相同;若不相同那么驱动器就不能使用NV-RAM中的数据初始化,马达也不能起转。
--firmwareversioncode(固件版本码)(如,E75D9E90)。
此固件版本码也应与NV-RAM中的相应的码相同。
若不相同那么驱动器就不能使用NV-RAM中的数据初始化,马达也不能起转。
ReadRAMintoafile(读RAM到文件)将驱动器微控制器的RAM中的全部内容或部分内容读出到一个文件;文件最大为256Mb。
当然,RAM的容量实际小的多;但是它有很多种不同的构成设计,所以程序被设计成具有操作驱动器微控制器的所有地址空间以保证读出所有的数据。
WorkwithNV-RAM查看NV-RAM中的内容,读NV-RAM到文件或从文件写入到NV-RAM。
查看NV-RAM时显示以下信息:
--Identifier(标识符)一定是“E2PR”。
--μ-Code(μ-码)(如,ER4OA45A)。
其中前四个字符(ER4O)表示驱动器型号(参看表2.“属系码”)。
后四个字符(A45A)
表示固件版本号;它与RON中的固件版本号相联系:
前2个字符(A4)必须相同,后2个字符可以不同(详见3.1“IBM硬盘固件结构”)。
另外NV-RAM中的μ-码还应该与模块列表(USAG)中的μ-码相同。
否则驱动器将使用NV-RAM中的数据初始化;马达启动但是不读取磁盘固件区的
数据。
--Codeofmicroprogramversion(微程序代码版本)(如,E75D9E90)。
--Headsmap(磁头映射)(如,0122222222)。
驱动器中磁头的数量和它们的连接情况。
表2.属系码
Code
Drivefami
J5
DJNA5400
J7
DJNA7200
TW
DLTA5400
TX
DLTA7200
ER
IC35AVER
VA
IC35AVVA
2.2.2.2.固件区操作
Workwithfirmwarezone(固件区操作)下有子菜单:
Checkfirmwarestructure(检查固件结构)
Write/readfirmware(读/写固件)
Ignorereadingerror(读固件时忽略错误)
Readmodules(读模块)
Writemodules(写模块)
LoadUSAG(载入模块列表)
Re-readmoduletables(重读模块列表)
Cleaningoflogs(ELG1,EVLG)(清除出错日志ELG1,EBLG)
ClearFLYH(清除磁头发生的机械碰撞日志)
Restorefirmwarezone(恢复固件区)
CreateanLDR-file(创建LDR文件)
Securitysubsystem(安全子系统)
Checkfirmwarestructure(检查固件结构)检查固件的完整性和他们的内容有无损坏。
另外,还给出主固件磁道和附加固件磁道上的模块之间的“spaces(空白)”的状态。
“spaces(空白)”的名字是:
“~##xx”—主固件磁道上的“spaces(空白)”,xx代表“spaces(空白)”的数量;
“~@@xx”—附加固件磁道上的“spaces(空白)”,xx代表“spaces(空白)”的数量。
详见第3节。
模块的信息以表格的形似显示在窗口,每个模块都有一个“RD:
”和“ID:
”标志域。
如果“RD:
”域的标志是“√”表示模块读取成功而“—”字符表示模块读取出错。
如果“ID:
”域的标志是“√”表示模块头中的标识符和模块列表中的标识符相符,而“—”字符表示不相符。
标识符出错(“ID:
”=“—”)只发生于那些“openmodulestable(开放的模块列表)”中的模块,这是由于其他的模块使用的是他们自身的拷贝,拷贝的名字与原始的名字是不同的,因此此时“ID:
”域的信息与模块头的内容不相符。
另外,“openmodulestable(开放的模块列表)”包含的是从“模块列表(USAG)”中的模块的别名;例如“RDM1”是“RDMT”的别名,“PDM1”是“PSHT”的别名,等等。
Write/readfirmware(读/写固件)复制固件,或将固件拷贝写回驱动器。
复制固件时NV-RAM也同时被读出,不过NV-RAM被写入一个单独的文件。
当写固件时NV-RAM不会被写回驱动器。
Ignorereadingerror(读模块时忽略错误)此命令只对“Readmodules(读模块)”命令有影响。
当Ignorereadingerror(读模块时忽略错误)有效时,程序的状态行的“IRE”变为红色。
此命令可以允许读出部分损坏的模块。
在普通模式下,当读模块时遇到错误,就会终止读操作,此模块被放置在模块目录并以扩展名“.bad”命名,这样此模块文件需要使用正常驱动器上的模块来代替。
在“IDE”模式下,当读模块遇到错误时,在模块文件中使用“DEAD”来填充,然后继续读模块。
通常,没有错误的模块扩展名为“.rmp”,而损坏的模块扩展名为“.bad”。
使用16进制编辑器查看模块文件时,可以根据模块文件中的“DEAD”鉴别出损坏部分。
Readmodules,Writemodules(读模块,写模块)读/写单个的模块和“spaces(空白)”。
此命令可以修复单个模块或者一组模块。
此命令还允许以多种模式读模块;通过菜单选择某一模式:
Anymaincopy(任何正常的模块)
Copy0(拷贝0)
Copy1(拷贝1)
Factorycopy(工厂拷贝)
“Anymaincopy”模式读取模块拷贝0;如果损坏则读取模块拷贝1。
读取哪一个模块取决于哪个模块是可读的。
“Copy0”或“Copy1”模式仅读取模块拷贝0或拷贝1。
在多磁头的驱动器中拷贝1对应的是磁头1;在单磁头的驱动器中拷贝1位于另一个磁道上。
模块拷贝的精确位置存储在NV-RAM中的地址字节。
因此若将多磁头的驱动器的数据写入道单磁头的驱动器的NV-RAM,将会引起敲盘——驱动器试图寻找并不存在的磁头对应的模块拷贝。
当只是拷贝0损坏,某一模块包含不正确的数据;或者需要从某一拷贝中读出模块的部分数据,从另一拷贝中读出同一模块的另一部分数据时,这种模式就显的非常有用了。
磁盘旋转会引起拷贝1中模块的损坏扩展到邻近磁道,这时可以使用16进制编辑器将从模块0中读取的的数据与从模块1中读取的数据拼接恢复。
在做这一工作之前,应该选择“Ignorereadingerrors(读模块时忽略错误)”模式。
警告!
不是所有的模块都在拷贝1中有一份拷贝,因此他们只能使用“Copy0(拷贝0)”模式。
在“openmodulestable(开放模块列表)”列出,而在“模块列表(USAG)”中没有列出的模块不能使用“copy1(拷贝1)”模式。
“Factorycopy(工厂拷贝)”将在工厂写入的模块移到驱动器上没有使用的磁道。
警告!
只有“模块列表(USAG)”中列出的模块可以使用此种模式。
另外,SRVM(柱面缺陷表)模块的工厂拷贝与实际使用的模块在校正部分是不同的。
很显然,在SRVM(柱面缺陷表)模块的“工厂拷贝”在写入驱动器之后,驱动器又经过了最后校正,因此造成了两者的不同。
LoadUSAG(载入模块列表)将选定的模块的列表载入程序的内存区而不是写到磁盘上。
当判断“USAG”模块损坏时可以使用此命令。
Re-readmoduletable(重读模块列表)载入USAG和开放的模块列表。
当对固件区进行修改以后可以使用此命令做刷新(修改固件区后不需要退出程序就可以继续进行其他的工作)。
Cleaningoflogs(ELG1,EVLG)(清除驱动器出错日志)清除驱动器出错日志(ELG1,Errorlog出错日志;EVLG,Eventlog事件日志)(对于60GXP和120GXP系列驱动器,EVLG事件日志也同时被清除)。
当驱动器的磁头0有故障时可以使用此命令。
执行此命令后还应该执行ClearSMART(清除SMART)命令。
ClearFLYH(清除磁头发生的机械碰撞日志,FLYH:
FlyHead)清除磁头发生的机械碰撞日志。
此日志存在于本手册所介绍的从120GXP(IC35AVVA)到以前所有型号IBM驱动器中。
Restorefirmwarezone(恢复固件区)修复固件区不可读的区域。
由于IBM驱动器的固件区是分散的,也就是说,在固件之间存在没有包括在模块表里的空间。
这些空间没有被使用,也不包含SELFSCAN(自检)模块。
但是驱动器在初始化时还是把固件区所有的空间读入RAM;当固件区包含有不可读的区域时就会出错。
另外,当需要恢复驱动器上大部分的固件区数据时,可能有某些关键模块不能读出。
在这种情况下,Restorefirmwarezone命令可以强制读取那些模块,即使其中有空白空间。
在一些情况下,此操作可以成功的恢复数据。
此命令读取驱动器上整个固件区,运行时间比“IRE(读固件时忽略错误)”模式(见“Ignorereadingerror”)要长。
不过它的优点是可以尝试读取不可读的扇区。
此命令的另一种应用是修复驱动器磁头故障(详见“Modifyconfiguration(修改配置)”一节)。
选择此命令后会跳出一个对话框,可以选择待恢复的磁头,操作方式(restoration恢复,clearing清除或者extensiveclearing扩展清除),和重试次数。
如果你选择“clear(清除)”或者“exetensiveclear(扩展清除)”操作方式或者重试0次,固件区就会全部被写入77h。
“扩展清除”是1.07版程序的方式。
此方式对于硬盘要安全一些,但是耗时也长一些。
不过统计数据表明此种方式对于恢复固件区经常是必需的。
因此我们推荐当“clear(清除)”方式无效时使用“extensiveclear”方式。
警告!
Restorefirmwarezone(恢复固件区)命令对硬盘可能有潜在的危害!
如果当硬盘的磁头有问题时执行此命令,有可能会损害固件区或者将数据写入到错误的扇区。
更甚的是当选择cleaningorExtendedcleaning(清除或扩展清除),有可能会擦除微程序代码。
所以在执行操作之前应该最大限度的保存硬盘上的固件。
可以参看有关LoadUSAG(从来自兼容硬盘的~USAG.rpm文件读入模块列表)和Ignorereadingerror(最大限度的读取模块数据,即使含有不可读区域)的章节。
记住微程序对于硬盘来说是非常重要的,简单的替换可能造成硬盘不可修复。
CreateanLDRfile(创建LDR文件)将驱动器的固件保存为IBMLDR格式的文件。
选择此项后会提示输入LDR文件的名字。
由于文件大小的限制,缺陷表(PSHT,RDMT)被另外保存到相同文件名但扩展名是“.dld”的LDR格式的文件(也就是说,当需要恢复模块时应该把它更名为*.ldr)。
另外,一个同名而扩展名是“.ldl”的文件也同时被创建,包含有驱动器的信息和LDR文件中的模块的列表。
如果有模块不可读,它们会被跳过,在操作完成后列出在报告中。
警告!
由此命令生成的LDR文件可能与原始文件不同,它包含有与驱动器参数相关的模块和NV-RAM数据。
如果想要将LDR文件用于其他驱动器,应在完成后将原始的SRVM(柱面缺陷表)文件和NV-RAM数据写回到那个驱动器中。
Securitysubsystem(安全子系统)查