MAXTOR(迈拓)
发布日期:2018-06-11 作者: 点击:
*硬盘的固件结构:
·麦拓的固件运行在RAM中,可以从三个资源进行加载:1。内部ROM;2。F-ROM;3。硬盘服务区。核对硬盘的ID号以及使用逻辑扇区进一步的工作是通过执行保存在PCB板上的代码来实现的,而初始化代码部分是保存在SA服务区上。
·PCB固件包含两部分:处理器内嵌ROM和外部的并行或串行F-ROM。一般外部ROM初始化处理器,如果外部ROM损坏,内嵌ROM才可以代替外部ROM,并且内部ROM可能属于另一系列硬盘的ROM,例如CALIPSO内部ROM就有可能是N40P的。ROM里面包含硬盘的主头的定义,在ROM里面的00 80 A9 33 4D 80 A9前面。
·SA:HALF-SIZE的硬盘SA在碟面的外缘而FULL-SIZE 的硬盘SA在内缘。固件包含ROM和OVERLAYS。
在服务区中POKER/ARDENT系列的硬盘包含两个控制硬盘的程序:1。38,39,4F;2。97,96,98。
·硬盘固件版本的ID号记录在HDA标签:6E030L0510202C(MODEL+HDA+PCBA+UNIQUE)在第九位可以看出磁头数1个。(在旧版的硬盘中他们的固件版本号如下:MODEL:5T030H3;HDA:23A;PCBA:04A;Unique:11A;CODE:TAH71DP0;)
·在我们换磁头的时候我们应该看标签上的四个大写字母,例如:K,M,B,E。这四个字母中第一位是磁头放大器的类型,第二位是使用的磁头的型号,如果两个字母一样的磁头是最好的,不然第一个一样也可以。
·服务区模块:服务区的层次结构如下:服务区的物理柱面定位〈--有效的服务区〈--模块集合〈---1:数据模块;2:固件模块;3:伺服模块〈--模块的工作桢包括报头和校验和。
·重要的模块:按模块的重要性可分为四种:A,B,C,D。
A-特定硬盘的基本模块:As-调节因子设定,AD-译码器表。用相同的模块替换硬盘模块会导致读/写设置的丢失和数据的丢失(例如重写调节因子模块);
B-这个模块是必须的,不过可以用相同型号和版本且匹配的模块来替换;
C-这些模块是必须的,不过部分的模块出错不会导致硬盘的运行。硬盘在当前的CIRCUMSTANCES下可以独立的修正模块的内容(在重置缺陷的过程中自动校准)。
D-这些模块不影响硬盘的正常的工作,他们经常包含信息模块。Dr-代表伺复自检模块;Dd-原始的缺陷表用于生成硬盘的译码器。
Maxtor固件选择的匹配方法:1.MODEL系列要一样;2.系列分类要分清,如BW0还是VW0等;3.要知道磁头数,看1F模块;4.要求主头一样,看37模块;5.尽量保持CRC校验一样,如果不一样,需要做自校准才可以匹配。查看电路板是否一样,看83模块的PCBA_PN。
下面介绍几个重要模块:
1、U-LIST=37 服务区译码器: 硬盘使用这个模块来辨别有效的服务区。它有8个备份,不过只有两个可以在模块表中显示。这个模块有独立的结构来表示每一个磁头,这个结构包含磁头数量和对应每一个磁头的服务区缺陷。这个模块也同时包含缺陷的在SA中的数量和地址,同时它也显示了P-List表的实际使用的扇区数。如果用别的硬盘的P-List模块重写硬盘的P-List模块,固件将会接到不正确的模块长度并且不可以使用这个模块(出现校验和出错)。如果SA的缺陷表隐藏了缺陷那么在U-LIST的数据被认为是独立的(如果从别个硬盘覆盖它,就会导致SA移位,从而是硬盘修复更加困难。如果没有隐藏的缺陷那么可以保留有用的P-LIST部分并重写模块,最后修改校验和。这个模块可以通过重建译码器来自动恢复P-LIST的长度。表示主头的位置为0X13。
2、DISK(pn=1F)配置模块:这个模块包含了型号,系列号,最大的逻辑块地址,物理磁头示意图和磁头数。用于建立译码器的磁头示意图保存在硬盘固件内。我们查看磁头示意图和磁头个数,容量的方法如下:0X04-0X05:0200;0X06-0X07:0300——表示硬盘有两个磁头:2头,3头;0X14-0X17:为硬盘物理最大容量;0X18-0X1B:表示磁头个数;0X1C-0X1F为当前硬盘容量;0X20-0X223表示硬盘磁头的校验码(方法为以2为底数,以磁头号为指数的代数和的十六进制表示):2^2+2^3=12->0X0C;0X1FA-0X1FB跟0C是对应的。
3、RZTBL(PN=78)模块:这个模块是硬盘译码器的一部分。它包含分区定位表每一个分区都相应的把自己的缺陷队列存放在P-LIST模块中。这个模块包括了建立译码器的磁头数。
4、AT_PDL(PN=18H)模块:P-LIST模块,是译码器的组成部分。这个模块包含了用户区的缺陷扇区的工厂表格。缺陷信息以格式化的形式记录并跟RZTBL描述的分区一一对应。
5、AT_POL(PN=1B)模块和它的备份A7模块:G-LIST表,它是硬盘在工作时建立的缺陷的表。A7只可以在N40P,CALYSPO的2004版本以及SABRE系列中找到。
6、FMTI(PN=93)模块:这个模块只可以在全尺寸的硬盘中找到。它包含分区定位表每一个分区的调节因子设置。所以这个模块是存取数据的基本模块。
7、RCT(21)模块:结构和目的未知,这个模块用别的硬盘模块覆盖时不会引起严重的功能性丢失(不过会使增加坏块数量),这个模块是在硬盘自检的时候生成,不过用于生成这个模块的数据仍是未知的,因此,如果模块损坏将使硬盘不可以修改模块。
8、SRV(1E)模块:结构和目的未知,如果用别的硬盘模块写该模块将是硬盘读取表面时出现许多坏扇区并且完全不可以记录任何东西到硬盘上。在硬盘自检时从伺服系统的校准子程序生成。
9、ROM_SA(PN=39)模块:这个模块是正常工作模式下加载的一部分固件--ROM信息。
10、ATA overlays(OVL ATA)PN=38模块:在正常模式下overlays的设置起这扩展固件的作用。如果所有的overlays不能读取,那么所有的ATA命令将不能正常工作,一个overlays是程序代码的一部分,它可以从RAM的缓冲区连接到处理器代码。并且一次只可以连接一个overlays。
11、overlays执行伺服命令(OVL-TECH)4F:由在伺服模式下固件操作决定了overlays的设定。
12、95模块:这个模块决定了该选程序1或程序2,如果该模块损坏将使硬盘不能运行。只有在没有可变SA的硬盘模块表中才可以看到该模块。
13、AT_XAL(35)模块:有时会使硬盘工作但不能使用LBA进行工作;它被用作添加缺陷到G-LIST表的临时表。
14、HLUTL&HUSR(PN=33)模块(或HLISTS )包含了一个表格设置。HLUTL(长16384字节且包含一个8比特的HEADER和CHECKSUM)。这是SA的缺陷列表。接着出现一个HUSR****的表格,****代表系列号,它的长度为8192字节。它是由用户区的缺陷数量它所增加的表格。
15、18,37,78模块是一组,如果其中有一个损坏,要同时写三个,必须是同一个硬盘的模块。38,39,4F跟上面的一样。
·调节因子:
包含有读取用户区数据的调节因子的模块有:SRV-1E,RCT-20,FMTI-93以及overlays-4F.我们可以需要进行数据恢复的硬盘的这些模块写到一个贡献盘上然后进行热交换。不过这种情况下可能不能把贡献盘的原模块写回。调节因子会随着记录数据的增加而增长。ATHENA系列的硬盘可以通过热交换方法来修复存取数据的功能,但是,这种方式会使N40P和CALYSPO的硬盘不能写和读取任何数据。调节因子可以通过SELFSCAN来重新校准。
·备用的SA:在MAXTOR品牌中只有在N40P,CALYSPO和SABRE系列中才有备用的SA。我们为了判断硬盘是否有备用的SA,可以查看一下模块表。如果里面有95模块,那就表示该硬盘没有备用的SA。使用备用的SA的目的就是为了生成主要的SA和隐藏缺陷。在备用的SA中拥有相同的模块但里面的内容是不同。在一个拥有备用SA的硬盘中,硬盘中启动之后ROM从主SA中读程序代码和译码器并核对他们的结构,如果他们结构因为模块出错而出错,ROM将从备用的SA加载。一个硬盘在该情况下自己使用备用的SA进行初始化。这意味着要返回主SA就要恢复的译码器和程序模块。下面的这种方法还没研究过:把另一个硬盘的主SA模块写到一个备用的SA上。我们只能做如下可能的假设:尽管从备用的SA运行但是主SA的程序还是被建立以用来与它的物理定位器工作。BOOT ROM将运行备用的SA区的程序A的代码,但是数据模块仍是从主SA读取。如果你使用程序A来执行一个LOADER,那么主SA将连接到UBA SPACE;如果我们从程序A开始加载,那么备用的SA将连接到UBA SPACE。★程序A和程序B有一个重要的区别:程序A的overlays在自检过程中将被修改,而程序C就不会且他它的校验和不变。
程序C不可以运行用户区的译码器和它的调节因子模块不适合读那个分区。这样的硬盘就将不能在LBA上使用。
有两种方法可以进备用的SA:
1:运行一个备用的LOADER,然后使用它的备用SA初始化。
2:也可以打开PN=18的模块修改HEADER里面的一个字节并保存模块到HDD。
在一些硬盘中在备用的SA中的程序2包含了程序1(在未进行自检之前),在里面包含了与主SA一样的ROM版本,这个是非常有用的,我们可以通过如下步骤运行一个硬盘:
。进行跳线;
。使用一个备用的LOADER;
。运行《RESTART USING INTERNAL HDD SA》,并选《PROGRAM》。
·译码器:译码器是一个复杂的程序和表格,它可以在操作系统的LBA和物理扇区之间进行转换。译码器被保存在如下的模块中:U-LIST37,AT_PDL18,RZTBL78,这些译码器表都是基于缺陷表(PN=33)建立的。我们可以在模块损坏的情况下重写模块,然后进行重建译码器就可以修复译码器表,使它的值变为原来的实际值。
·运行应用程序:在打开运行程序时,就会发送一个命令对硬盘ID辨别状态。如果处于安全模式状态下,在对话框就会出现一条信息:硬盘安全模式寻找。当应用程序接到上一条命令的回应时就会自动的选择所连接的硬盘的系列。当然如果硬盘不能正确的辨别硬盘ID或不支持该硬盘时就不能自动选择。在安全模式下的对话框有许多命令来初始化硬盘PCB存贮器的固件。运行步骤:LOADING LDR->选相应的LDR->READING ID->如果ID全部显示就表示这是正常的硬盘行为,如果固件改变但系列号不显示,在这种情况下就要核对记录到SA或初始化SRV->读模块,如果出错就要从"Read resources from DB"选项运行程序。