西数硬盘维修方法
1、第一节:硬盘分类
1:按电路板分类:
西数 IDE 硬盘及 SATA 硬盘共分四个大系列,两大类别,在实际修复中,
只需要通过硬盘电路板的外观及可区分系列,使用相应的子程序即可进行修复)
西数 IDE 硬盘及 SATA 硬盘共分四个大系列,两大类别,在实际修复中,
只需要通过硬盘电路板的外观及可区分系列,使用相应的子程序即可进行修复)
第一类:WD-MARVELL 08 年之前的老式硬盘,多数不 IDE 接口,电路
板如下三种。
WD 16BIT 一代盘 WD 32BIT 二代盘
WD 黑盘一代 WD 黑盘二代
第二类:WD-ROYL 系列(市面上 08 年上市的台式机和笔记
本盘都属于 ROYL 系列,其中如图三 L 型板的串口盘也是此类)


2、ܚ按家族分类
西数硬盘的家族很多,一般如下图,维修中我们换固件或做通
刷时,电路板号可以不一样,但家族一定要相同才能刷写,不然一刷
就死板了。
请看下面,在 WDR 中检测出的硬盘类型:
WD3200AAJS- 65M0A0 FW:05.04E05 8 SN:WMAV2T3364848 (ROYL selected) port 0xCC00
Controller Buffer Size: 8192Kb
Family:
(ROYL selected) port 0xCC00
Controller Buffer Size: 8192Kb
Family: Pinnacle Lite (Royl)
以上信息
WD3200AAJS- 65M0A0:硬盘型号
FW:05.04E05 固件版本号
WMAV2T3364848 硬盘序列号
Pinnacle Lite 硬盘家族

3、ܚ从固件模块中查看家族信息
因这 WD 维修家族很重要,刷错了就会死板,而我们拿到一个未知固件,
不知道家族时,可以从模块中查看。
C5模块包含家族号信息, WDR备份的固件里为~id00C5.rpm,使用winhex
或其它二进制编辑器打开 C5 模块,可以看到:
从下图可以看到,此固件家族为 Pinnacle

4、WD 硬盘固件结构
WD 硬盘固件分为 ROM 和固件模块
ROM:其中 ROM 保存于电路板中,有的电路板上有八脚的储存芯片保存
ROM,有的保存在主芯片之中。保存在电路板上的一般为 25F010 一类的
芯片,如果硬盘 ROM 刷死,可以使用编程器取下芯片进行编程。而对于
在主芯片内有 ROM,一旦刷死,只能通过 COM 进行编程。
ROM 之中包括 0A;0B;0D;30;4F;47 共六个模块。从备份的 ROM 文件
中可以拆分出来。
固件模块:WD 的固件模块分得非常细,数量达数百个。
其中,最重要的模块有:
01 模块: 模块地址目录,如果换固件,要写模块,必须先写 01 模块,
复位电源后才能写其它模块。01 号模块所在的硬盘固件区地址是固定
的,而其它模块的地址是由 01 模块规定的。如果写不进 01 模块,要么
就是磁头损坏,要么就是固件不能用。
28 模块:自校准流程模块。WD 硬盘维修用得最多的是 PST 流程,也就
是我们常说的做自校准。由硬盘内置程序对硬盘进行全面优化,并扫描
坏道到坏道表。28 模块规定了 PST 应该怎么做,先做什么后做什么,要
做哪些,如果一步出错又做哪一步等。硬盘厂家出于保密,出厂后 28
流程一般被清空或写入不适合的流程,在维修中我们要对 28 进行修改
才行跑 PST,这关系到维修的成功率。
ID01=DIR (模块目录)
ID02=参数/密码模块
ID03=段位表
ID04=段位表主备份
ID05=段位表备用 1
ID06=段位表备用 2
ID07=段位表备用 3
ID0A=磁头地图
ID0B=Flash ROM 目录
ID0D=Flash 配置
ID0C=型号列表
ID11=Overlay (ATA 模块)
ID12=引导程序
ID13=引导程序
ID14=引导程序
ID15=引导程序
ID17=两个扇区表(通常是空的)
ID19=引导程序
ID1B=引导程序
ID1C=引导程序
ID1C=表格
ID1E=引导程序
ID1F=引导程序
ID20=SMART & 当前日志
ID21=SMART & 当前日志
ID22=SMART & 当前日志
ID23=SMART & 日志清除
ID24=SMART & 主要日志
ID25=SMART Log 80h-9Fh Host vendor specific
ID26=SMART Log A0h-B7h DLGDIAG Log
ID28=自动校准流程
ID29=表格 1_0
ID2A=表格 1_1
ID2D=SMART Log - Dump RAM
ID2E=SMART Log - Dump RAM
ID2F=Overlay
ID30=译码表:固件区
ID31=译码表:P-LIST
ID32=译码表:G-LIST
ID33=缺陷表:P-LIST
ID34=缺陷表:G-LIST
ID35=缺陷表:固件区
ID36=缺陷表:磁道
ID37=Gain Call Data Module
ID38=引导程序
ID39=引导程序
ID40=适配参数:用户区
ID41=自适应
ID42=自适应
ID43=自适应
ID46=自适应:拷贝到 id40
ID47=适配参数:固件区
ID49=自适应
ID4A=自适应
ID4C=引导程序
ID4D=自适应
ID4E=引导程序
ID4F=微代码版本
ID50=表格 MAIN
ID51=表格 ALT1
ID52=表格 ALT2
ID53=表格 ALT3
ID60=清除
ID6B=引导程序
ID6E=引导程序
ID6F=引导程序
ID90=校准:日志
ID91=校准:日志
ID92=校准:日志
ID93=校准:日志
ID9E=校准:日志
IDB1=简单测试
IDB5=WRRO 日志模块
IDB6=工厂自测试模块
IDB7=测试数据
IDB8=自校准表
IDB9=低级格式化
IDBA=SPT 全读
IDBB=SPT 全写
IDBC=STP Depop
IDBD=自校准表:清除
IDBE=自校准表:清除
IDBF=自校准表:表格
IDC0=校准:日志
IDC1=校准:日志
IDC2=校准:日志
IDC3=调整磁道密度
IDC4=磁头读写参数/飞檐高度调整
IDC5=校准:DCM Codes
IDC7=校准:日志
IDC8=调整扇区密度
IDCA=校准:日志
IDCB=校准:日志
IDCC=校准:日志
IDCD=校准:日志
IDCE=校准:日志
IDCF=校准:日志
IDD1=扫描缺陷(写)并加入 LOG
IDD0=抛光测试
IDD2=加 P-LIST
IDD3=处理扇区数量
IDD4=测试磁道缺陷
IDD5=测试簇
IDD6=校准:测试
IDD7=PE 扫描测试
IDD9=擦除块测试
IDDA=校准:测试
IDDB=扫描缺陷(读)并加入 LOG
IDDC=Test Xmit Blink
IDDD=增益校准
IDDE=自校准:
IDDF=迷你测试
IDE0=工厂自测试缺陷日志
IDE1=工厂自测试缺陷日志
IDE2=工厂自测试缺陷日志
IDE3=工厂自测试缺陷日志
IDE4=工厂自测试缺陷日志
IDE5=工厂自测试缺陷日志
IDE6=工厂自测试日志
IDE7=工厂自测试参数模块
IDE8=校准:日志
IDE9=校准:日志
IDEE=校准:日志
IDF0=校准:日志
IDF1=校准:日志
IDF7=清除单位时间错误数据
IDFA=校准:日志
IDFB=校准:日志
IDFC=校准:日志
IDFD=校准:日志
IDFE=校准:日志
ID0102=Copy of id0A
ID0103=Copy of id0D + id47
ID0105=Copy of id30
ID0107=Copy of id0B
ID0108=Overlay
ID0109=Copy of Flash Code
ID1000=Sector NULL
ID1001=自校准引导程序
ID1002=自校准引导程序
ID1003=自校准引导程序
ID2000=Head 0 Mrjog/参数调整日志
ID2001=Head 1 Mrjog/参数调整日志
ID2002=Head 2 Mrjog/参数调整日志
ID2003=Head 3 Mrjog/参数调整日志
ID2004=Head 4 Mrjog/参数调整日志
ID2005=Head 5 Mrjog/参数调整日志
ID2006=Head 6 Mrjog/参数调整日志
ID2007=Head 7 Mrjog/参数调整日志
ID2010=Head 0 部门测试日志
ID2011=Head 1 部门测试日志
ID2012=Head 2 部门测试日志
ID2013=Head 3 部门测试日志
ID2014=Head 4 部门测试日志
ID2015=Head 5 部门测试日志
ID2016=Head 6 部门测试日志
ID2017=Head 7 部门测试日志
ID2020=Head 0 读/写测试日志
ID2021=Head 1 读/写测试日志
ID2022=Head 2 读/写测试日志
ID2023=Head 3 读/写测试日志
ID2024=Head 4 读/写测试日志
ID2025=Head 5 读/写测试日志
ID2026=Head 6 读/写测试日志
ID2027=Head 7 读/写测试日志
ID2030=Head 0 磁道测试日志
ID2031=Head 1 磁道测试日志
ID2032=Head 2 磁道测试日志
ID2033=Head 3 磁道测试日志
ID2034=Head 4 磁道测试日志
ID2035=Head 5 磁道测试日志
ID2036=Head 6 磁道测试日志
ID2037=Head 7 磁道测试日志
ID2040=Head 0 信道参数主机测试日志
ID2041=Head 1 信道参数主机测试日志
ID2042=Head 2 信道参数主机测试日志
ID2043=Head 3 信道参数主机测试日志
ID2044=Head 4 信道参数主机测试日志
ID2045=Head 5 信道参数主机测试日志
ID2046=Head 6 信道参数主机测试日志
ID2047=Head 7 信道参数主机测试日志
ID2050=Head 0 ZoneAllcation 参数调整日志
ID2051=Head 1 ZoneAllcation 参数调整日志
ID2052=Head 2 ZoneAllcation 参数调整日志
ID2053=Head 3 ZoneAllcation 参数调整日志
ID2054=Head 4 ZoneAllcation 参数调整日志
ID2055=Head 5 ZoneAllcation 参数调整日志
ID2056=Head 6 ZoneAllcation 参数调整日志
ID2057=Head 7 ZoneAllcation 参数调整日志
ID2060=Head 0 信道参数确认/注册登录
ID2061=Head 1 信道参数确认/注册登录
ID2062=Head 2 信道参数确认/注册登录
ID2063=Head 3 信道参数确认/注册登录
ID2064=Head 4 信道参数确认/注册登录
ID2065=Head 5 信道参数确认/注册登录
ID2066=Head 6 信道参数确认/注册登录
ID2067=Head 7 信道参数确认/注册登录
ID8000=测试 List ?
ID8001=日志
ID8002=日志
ID8003=IBI-data config string (+model/serial)
ID8004=Sript Headers ?
ID8005=日志
ID8006=日志
ID8007=日志
ID8008=日志
ID8009=日志
ID800A=日志
5、第三节:WD通刷固件维修全过程
下面我们以一个 WD3200AAJS 家族为 的硬盘做通刷自校准。
第一步:启动软件

6、第二步:设置维修盘接口 点击选项---端口----再单击自定义

7、然后出现界面如下:
注意:这个框里面有6行参数,其中有一行刚好是我们待修盘端口,
如果不知道哪个才是,我们可以逐一试点击进界面来与获取到的硬盘参数核对,找出待修盘的端口为止。

8、第三步:进入维修程序
单击(硬盘类型)--再单击(WD-ROYL):注意:如果是L版选WD-MARVELL,三角板选WD-ROYL

9、进入如下界面:







10、第四步:解读维修盘信息
WDC WD3200AAJS-65M0A0 FW:15.01HA15 SN:WD-WMAV3364844 (ROYL selected) port 0xA800
硬盘型号 固件版本 SN号
Logical: Cyls 16383, Heads 16, Sectors 63, LBA 625142448, 320Gb
Controller Buffer Size: 8192Kb
Family: Pinnacle (Royl)
家族
第五步:查看原始磁头地图信息
要写固件要先查看原始磁头地图,写入对应头的 ROM,以免写错头会引起敲盘,损坏磁头!


11、第六步:设置工作目录文件夹

12、第七步:备份模块
单击快捷键
操作模块
特别说明 :在维修前,对硬盘固件模块做备份是维修人员的良好习惯
,
维修前一定要备份原始固件模块,以免在维修过程中出现错误还可以
回写到维修前 。


13、下面我们做通刷
:
第一步 : 设定通刷文件夹目录
在这里我们设定固件目录目录
第二步 : 写 ROM

14、选择对应头的 ROM 双击或打开
出现 :
Erase Flash - OK
Write Flash - OK
提示完成后关闭 Flash 操作界面
点菜单图标 Super Reset Immediate 复位硬盘电源
复位完成后软件提示 :Power On Reset Immediate –
SUCCESS
WDC ROM MODEL-PINCLITE- FW:05.ESE SN:WDC-ROM SN# XYZ---- (ROYL selected) port 0xCC00
Logical: Cyls 0, Heads 0, Sectors 0, LBA 0, 0Gb
Controller Buffer Size:
0Kb
Family: Pinnacle Lite (Royl)
写 第二步 :写 01 号模块目录
模块操作菜单
Modules , 模块大多数为空白 , 这是因为找不到模块所在目录了 , 此时 ,
我们在空白处点右键 , 选择从文件中加载目录地图 :下图1
选择 Modules 文件夹里的 0001 号模块 , 加载后模块目录地图就出现了
。
加载完成 , 出现目录结构 ,选定 0001 号模块, 点右键 选定写入下图2
写完固件之后,复位或者断电之后加电即可认盘。下图3



15、如果是通刷固件,那么接下来就需要做44优化固件区。做44之前,读出所有模块,做完之后回写所有模块。之后再次复位。

16、单做 46 :
如果原盘是认盘的,单纯红绿块较多,我们可以单做 46,对用户区进行全面优化,选择
F: ARCO User Area 全面优化读取通道,此步时间较长,一般 160G 盘按坏道多
少需要 1-3 小时,完成后内格一次再扫描。
做完 46 坏道还是多,就需要做完整个 ARCO 流程。
附:下拉菜单
D:ARCO Reserved Area 单做 44 做固件区坏道,做完需要回写全部模块 ID=C4
F: ARCO User Area 单做 46 全面读取通道测试优化 ID=C4
J:SARCO User Area 单做 4A 用户区优化测试,ID=C4
O:Changes High SPT 单做 6F 磁头功率及飞行高度调整
K:AZL 单做 6B 前置放大校正,磁头优化,磁通道优化,磁密度优化 ID=C3
I: Changes low SPT 单做 6A 前置转向校正,延时校正,磁功率设定,磁头段
位交错校正 ID=C4
P:?for Raptor 单做 70 磁头性能优化 PD=C4
C:OTC 单做 69 调整磁通量,设置容量 ID=C8
号 硬盘大小型号 SN 设定:
做完 44 后,就可以开始跑 PST 校准了,因为我们是做的通刷,容量大小和硬盘型号,SN
号都和原盘不一定相同,此时需要先行设定 LBA 大小,型号信息,SN 等。
40G--78165360
60G--117231408
80G :156301488
120G:234441648
160G:312581808
250G:488397168
320G:625142448
500G:976773168
750G--1464843750
1000G:1953525168
选 OK 后,硬盘大小就设好了。图1
接下来开始自校准
我们可以通过点击 开始快速自校准。
之后出现下面图片按OK即可开始离线自校准:
下图2
同时也可以通过自己手动开启自校准,按编辑自校脚本
下图3 选定你自己需要的步骤之后点击执行
之后按 查看自校准结果。



17、当离线SF达到一定的情况下,可以断电查看结果,先按 停止自校准。
停止校准 :
此处可以看到每个磁头扫描到的坏道数量
Head 1 = 656 ( Tracks: 399 , Sectors: 257 , Max: 53330
Head 0 = 923 ( Tracks: 413 , Sectors: 510 , Max: 53330 )
当某个头坏道数量达到 MAX:53330 时,即为坏道太多超过 P 表容量,此时可以
砍掉此头重新做 PST,有些盘可以降容修好。
做完后,查看 P 表:此时 P 表有记录才成功跑完全程,如没有记录,分析流程,有的只有几秒或几分钟就跑完的,就是没有成功的,需要重新跑。

18、逻辑扫描,维修至止完成!
跑完后点 Logical scan ,进行全盘扫描 下图1
点击确定开始扫描 下图2
一般跑完的都是一个红绿块都没有,至止,完美修好。

