本文档来源于MRT固件实验室
更多信息请访问我们的网站 http://www.mrtlab.com
大家好,今天我们来看看WD盘的一般修盘流程。
可以看到,现在连接的这快盘状态是错误的。
我们现在进入程序看看,发现设备识别失败,也就是通常所说的“不认盘”
先直接进入普通模式看看是什么症状。我们发现以下问题:
1. 硬盘信息框中信息显示不全了,可以说是没有
2. Zone allocation table,读取失败
3. 配置模块读取失败(02模块)
通常情况下,模块目录应该也是读取失败的。
我们来分析一下:
一般来说,根据第1,2点,我们就可以判断,11模块(主要的微代码模块)没有启动为了应对这种情况,程序中,有一个“加载LDR”的功能,它在2个地方
可以启动。
我们来看看,可以看到,家族选择框,与主界面2个地方提供了此功能,我们来试试看。
额,完了,这里有几套固件,有些用户甚至有更多的固件,那么我们该如何去选择相匹配的11进行加载呢?
我们先操作看看,进入普通模式,可以看到ROM版本:21.7SM,启动流程中有些日志,这些日志中发现有一条“ROM Firmware version”:0021007S。一般来说,我们需要打开11模块,查看一下11模块的版本信息,是否和以上2个信息相同或者相近。如Winhex中打开的,西数盘(三角板),每个模块的版本信息都是从第二排开始的8个字节。
当然,这需要每排是F个字节才行。为了方便,我们程序中,将每个盘的ROM版本信息放在固件目录的末尾,刚刚有心的人可能已经发现了。可以发现,在末尾会有这样的信息。
我们来加载试试,加载LDR成功,软件会有提示。不过有时候,加载后,主界面左上角的硬盘信息栏里并没有出现像现在这样的信息。那种情况代表着加载的LDR没有生效。可以重新试试其它11模块。
这里,我们加载了LDR,但是启动流程中“Zone allocation table”,怎么还会有错?我们再来看看。
实际上,加载了LDR,左上角看起来也有信息,不过,11模块还是没启动,这是一种特殊情况。
判断是否启动,可以在静态模块里读取(实际是读取的内存)看看能否读取成功。也可以看看,容量,我们看到,这里的容量(它实际是最大LBA)只有1,这其实也是没有启动的症状。
那么,加载LDR还是不行,该怎么办呢?
我们继续看看。我再次试了一下加载LDR,还是不行。有时候,可能是ROM并不与盘匹配,我们显示的ROM版本自然有错,某些情况,可以在试试其它与之相近版本的11模块。这里我们就不做此事了。
此时,我们可以试试,我们的诊断模式了。关于诊断模式的详细使用讲解,之前已经在另一视频中说过了,此处就不再啰嗦。
可以看到,经过诊断模式的处理,进入后,左上角的硬盘信息栏中也有信息了,并且容量并不等于1。我们打开模块列表,可以发现之前许多不能读取的模块现在也能够读取了,这是我们最乐于见到的情况。
我做了一个读写测试,这表明了磁道方式读写都正常。有时候,我们主要是为了测试磁头的好坏,那么就可以把测试长度填到最大。我们可以观察,如果以最大长度测试,在日志中全部的扇区地址都报错了,那么很可能是磁头坏了,或者,某个磁头,能读不能写,或者能写不能读,但其它磁头正常,那么有报错的那个磁头也可能是坏了。或者某个磁头只要写哪个扇区,那个扇区就坏了,数据读不出来了,那么也可以判断大概是磁头
有问题。、
可以看到,磁头1,写数据OK,但是读数据的时候,有2个扇区报错,这相对于840来说,是一个很小的数字。此时,我们可以认为,这并不是磁头坏了,而是这里有坏扇区,坏块,或者说坏道。
为了确认磁道方式能够正确的读写,我刚刚用读写磁道的方式,再次进行一次测试,其实和那个磁头测试做的一样的操作,只是亲眼看到数据变化显得比较可靠。
那么,能够正常读写固件了,接下来该做什么呢?
一般来说,主要是做2个测试。
1. 硬件模块检测
2. SA模块结构检测
曾有客户问到:这2种检测有何区别,这里简要作答一下:
硬件模块检测,是由硬盘自己的微代码程序所进行的一种测试。
SA模块结构检测,是有Mrt程序读取模块,然后检测模块的头部数据是否损坏,从而大体判断此模块是否是正确的。
相对来说,硬件模块检测比SA模块结构检测更要严格一些,毕竟,硬盘自己最清楚自己是吧。就像人一样,谁身上哪里不舒服,只有他自己知道的最清楚。
下面我们来做一下测试看看。
可以看到,02有错误,11,COPY0是好的,copy1是坏的.实际情况中, 一个模块只要有一个备份是好的,那么它就可以正常工作。那么11为何没有启动?肯定是有其它模块导致它没有启动,根据经验,一般是02,03,04等模块有问题,也会导致11不启动。
我们在看看所说的那几个模块。02,03,04都有个备份是好的,按理说,它们都应该正常工作啊。
有些情况是隐藏的很深,这个时候就是对我们技术的考验了。其实,这个地方之所以出现这种症状,还是我把03弄坏的。
之前本来准备直接把11弄坏来做这视频的,结果发现它太简单,代表性也不广泛。还有一些长出现的情况导致11不能启动。
那就是02,03,04,11等任何一个模块所在区域恰好有坏扇区。导致它们数据错误。甚至有时候做远程时,还发现01模块
有坏扇区的情况。
针对这种坏扇区的情况,我们程序做了一个模块偏移的功能,我们只要在模块列表中点击右键,就可以看到此功能的菜单开关。可以观察到,如果您想偏移哪个模块,就在哪个条目上点击右键打开此功能就行。注意01模块可不是随便可以进行
偏移的。某些功能的讲解,我们留到以后。
现在,先把今天这个完结吧。
把之前备份的03写进去,发现盘好了。
本节主要讲解的是修盘的大概流程。其中也掺杂了一些Mrt西数模块常用功能的讲解。至于其它功能,我们下次再见。
要访问更多资料,请点击http://info.mrtlab.com