19 12
发新话题
打印

非3K修复4D040H2的通病。

非3K修复4D040H2的通病。

非3K修复4D040H2的通病。
先按正常模式接一个好盘,进入MHDD,执行指令“STOP”。这时硬盘停转,热交换到坏盘上。执行指令“i”这时硬盘启动。退出MHDD,运行HDDL,选择写入LDR。指定相应的LDR文件,按空格取消选项。选确定,有出错的提示,硬盘会停转。热启动电脑发现硬盘可以认了,进MHDD扫描一切正常。
数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

文章中所有的汇编代码都来自希捷的硬盘RAM中,也可以参考ROM,但ROM中是偏移的地址,不知道起始的地址所以看起来不方便,RAM中就不同了,RAM中的寻址都是实际的地址,用指令可以读出RAM。



RAM中有这样一段代码:
00005E60: 5E D9 39 00 54 66 9E 01 31 5F 14 02 32 10 32 03 | ................
>                  ^^^^^       ^^^^^       ^^^^^       ^^
00005E70: 33 10 34 04 34 10 36 05 35 60 B7 06 36 65 66 07 | ................
>         ^^       ^^^^^       ^^^^^       ^^^^^       ^^
00005E80: 37 10 38 FF C4 17 CA 40 E7 17 EC 0D ED 18 4F 39 | ................
>         ^^       ^^



看代码中带标记的部分不难看出,是一个表格,看第一个,54就是T,669E就是T的地址,如果工作在T的级别就可以跳到这个地址。后面是工作在/1/2/3/4/5/6/7的工作模式。



下面是669E地址的代码:
00006690: 01 ED 41 27 07 8D C1 26 03 FF 04 3D 4F 39 66 A0 | _эA'_Н-&___=O9fа
>                                                   ^^^^^



在660E的地方又跳到另一个地址是66A0。这里我就不懂了,不知道为什么又有一个跳转。
下面是66A0地址的代码:



000066A0: 44 66 E3 45 C9 C5 46 68 79 48 68 2F 4A C9 C5 4E | DfуE++FhyHh/J++N
>         ^^       ^^       ^^       ^^       ^^       ^^
000066B0: 68 47 59 68 59 53 69 AF 54 68 F9 56 99 AA 57 F9 | hGYhYSiпTh?VЩкW?
>               ^^       ^^       ^^



这里就看的很清楚了,带标记的代码就是指令,就是我们在键盘敲入的键,分别是D,E,F,H,J,N,Y。紧跟后面的两位代码就是执行指令需要跳转的地址。
本文只提到了Y指令的用法,Y指令是更改硬盘型号和容量的指令。下面是6859的地址反汇编后的程序。



seg000:6859 ; -----------------------------------------------------------
seg000:6859  
seg000:6859 Y_ON_0:                             ; DATA XREF: seg000:66B3
seg000:6859                 pshb                    ;压栈  
seg000:685A                 jsr     IsHermoValid    ; 条件语句,判断指令是否符合运行条件。
seg000:685D                 tstb                    ;  
seg000:685E                 bne     loc_0_6866      ; 跳到6866
seg000:6860                 pulb                    ;  
seg000:6861                 ldd     #aInvalidEntry  ; "Invalid entry\r" 提示出错的信息。
seg000:6864                 bra     locret_0_6878   ; 退出
seg000:6866 ; -----------------------------------------------------------
seg000:6866  
seg000:6866 loc_0_6866:                         ; CODE XREF: seg000:685E
seg000:6866                 stab    word_0_49E
seg000:6869                 stx     word_0_49B
seg000:686C                 sty     word_0_4A0
seg000:6870                 pulb  
seg000:6871                 stab    word_0_802+1    ; 执行指令
seg000:6874                 jsr     W_ON_0
seg000:6877                 clra  
seg000:6878  
seg000:6878 locret_0_6878:                      ; CODE XREF: seg000:6864
seg000:6878                 rts  
seg000:6879 ; ----------------------------------------------------------
seg000:6879  
seg000:6879 F_ON_0:                             ; DATA XREF: seg000:66A7
seg000:6879                 ldx     #$805
数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

用指令实现ST的砍头。

关于希捷硬盘的软砍头。(阿亮)




希捷U10硬盘ST315323的硬盘,开机时硬盘“孜孜”的响,通过砍头来修复。



首先接好COM线,进入软件后接通电源,出现如下提示:



Err=0016
Err=0016
Err=0016
看来硬盘的磁头有坏,自检无法通过,这时按指令“.”出现如下提示:
Pgm=00 Trk=379E(379E).1.085 Zn=A Err=00 ErCt=0000 Hlth=0000 CHlth=0000 Ready



看到了提示Trk=379E(379E).1.085中379E是磁道数,1是磁头,085是扇区数。
看到了这个提示说明磁头1正被选中,那就说明磁头1坏了。只要不是0头坏就可以了。下面利用Y指令砍头,先运行指令“;”出现如下提示:
Age=50 Type=E2 MxCyl=4979 MxHd=2 MxSct=1E0 BSz=0200 TCode=0000
看提示Type=E2,E2中E是类型,2是磁头数,说明磁头为0、1、2共三个头,现在砍掉1、2头,使用指令“YE0”出现如下提示:
U10 - ST315323A ,03.02
VBPIConfig: 08, FF, FF, FF.
RamHeadMap: 00, 01, 02, F3.
Total Capacity= 00995060



         SCyl ECyl  H0  H1  H2  H3
         ---- ----  --  --  --  --
Zone 0: 0064-0075 518 NIL NIL NIL
Zone 1: 0076-066C 648 NIL NIL NIL
Zone 2: 066D-0CE3 624 NIL NIL NIL
Zone 3: 0CE4-128D 608 NIL NIL NIL
Zone 4: 128E-1931 588 NIL NIL NIL
Zone 5: 1932-2007 576 NIL NIL NIL
Zone 6: 2008-251B 555 NIL NIL NIL
Zone 7: 251C-2A43 540 NIL NIL NIL
Zone 8: 2A44-2F75 522 NIL NIL NIL
Zone 9: 2F76-3489 504 NIL NIL NIL
Zone A: 348A-397D 480 NIL NIL NIL
Zone B: 397E-3ED5 450 NIL NIL NIL
Zone C: 3ED6-4433 432 NIL NIL NIL
Zone D: 4434-4979 396 NIL NIL NIL



接着输入指令“N50”后按“Ctrl+T”出现如下提示:
ATRst
PMstr with Non-conform'gSlv
说明砍头成功。
这时热插把电源看到如下提示,看硬盘型号变为ST35112A,硬盘已经变成了5G了。



Interface task reset



Ref 6A - Head Mask 0A00 - Head Mask 0900 - Switch to full int.
                   Ready
U10 - ST35112A  ,03.02
.PMstr with Non-conform'gSlv




最后用MHDD扫描硬盘将坏到扫到G里就可以使用了。



*******以后在写关于硬件砍头的方法*************
数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

低格后的数据恢复
格式化会重建立DBR,清除两个FAT表,会清除根目录。下面是我对误格式化后做数据恢复的思路:
1,修建DBR:DBR里重要的数据就是BPB,BPB中重要的数据是每族的扇区数,保留的扇区数,隐藏的扇区数,FAT的扇区数。这些数都要恢复到未格式化以前的状态。对于没有改变分区容量的格式化,BPB基本是相同的,如果不同就要通过查找“.”目录的方法,计算每族的扇区数,其他个数可根据默认值获得,FAT的扇区数可根据根目录的偏移,反计算获得。
2,查找恢复的文件名:必须要记住要恢复的文件名或者所在目录的名称,将文件名换算为HEX码查找,通过筛选获得查找文件所在的目录的族号。如果文件在跟目录就没有办法查找了,可以看下面修复的步骤。
3,修复跟目录:在根目录下建立一个目录,然后修改目录的族号指向上面查到的目录的族号,也许以前的文件夹不是在跟目下也不要紧。如果要恢复的文件比较小,可以不需要这一步,直接把要恢复的文件的HEX码直接复制下来就行了!为了提高效率也可使用专用的数据恢复软件查找,这样可以查找到族链是连续的文件,这就不多说了!
4,查找族链是连续的文件:通过文件的目录项可知文件的长度,就可计算出文件占族的长度,将族链填写到FAT表里,到目录里刷新一下,文件就出来了。如果族链是连续的话,文件就可以完整的恢复了!
5,查找有一处族链不连续的文件:这就需要对要恢复的文件的结尾的标志有了解,在一个空的族上建立你要恢复文件的结尾的标志,然后将某一族链指向这个族,在运行一下你的文件看能不能远行,不行就再修改其他的族链,就是要查找到不连续的断链,这样也能恢复一部分的资料。当然断链的地方如果正好是另一个文件的开始就好办了!查到断的族链后,根据文件的长度和文件的结尾的标志,查找到另一处的文件的结尾的偏移!根据已经查找到的那部分长度就可以计算这一个部分的长度。修改FAT表文件就找回来了!对于根目录的文件也使用这个方法可查找文件头和尾的标志。
6,查找二个以上族链不连续的文件:这需要对文件的格式有更多的了解,根据上面的方法查到文件的开始和结尾,通过对文件格式的了解,根据上面的方法查找中间可能包含文件的部分,使其连接到一起分析,删除不正确的族,来达到恢复的目的,但也这个极其艰苦的。
数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

这几天看了一下QT的盘,并对盘做了测量,将稳压二极管的画上,至于二极管的作用我想应该是防止运放工作在非线性区域,强制硬盘复位的。

数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

迈拓硬盘903400D2的维修思路!
迈拓硬盘型号为:903400D2。故障现象为用任何分区软件都不可以分区,任何低格软件都不可以低格,用MHDD检测显示全部的“S”,用任何检测软件检测为“IDNF”错误。
这个硬盘型号在3K里是不支持的,我用PCMX_DSP.EXE的模块勉强可以进入,但很多的选项不可以使用。幸运的是尽管有提示出错的信息但还是可以对固件区进行读写。
用3K将好盘和坏盘的MOD和RAM进行备份,有错误的提示信息忽略,LDR根本无法备份。
对备份的MOD进行比较分析,发现很多的模块都是0字节,有容量的模块内容也大多数为0。
没有找到什么线索就只有对RAM文件进行比较分析。因为RAM中包含DSP的可执行程序,所以一定可以找到线索。
果然不出我所料,终于发现了可疑之处!在下面的地方:

好盘:
0008AF0 | 5441505F4C4F30200200D7F16500BE55 | TAP_LO0 ....e..U
坏盘:
0008AF0 | 5F55494C545333300200250000000000 | _UILTS30..%.....

看到这个地方似乎有些眼熟,好像见过,到MOD里查找,很快就在 01B3000A.RPM找到了痕迹。
0000000 | 5441505F4C4F30200200D7F16500BE55 | TAP_LO0 ....e..U

比较RAM里地址0008AF0到0009ED0和01B3000A.RPM模块中数据一模一样。看来是这个文件在RAM里有整个文件的备份。

比较坏盘的01B3000A.RPM模块中的数据竟然不相同。
0000000 | 4F4E475F494C5453000000006500D556 | ONG_ILTS....e..V

哈哈。。。看来我找到出问题的地方。
这个文件是做什么用的?有经验的朋友一眼就看出来是记录用户级的缺陷表的文件。
查看坏盘的文件头信息是什么:NO_GLITS.难道是作了不可用的标记?

既然找到了问题就好做了,把好盘的01B3000A.RPM文件刷到坏盘或者清空坏盘的G-LIST表,问题就解决了!

我想通过手动更改这个表,但没有成功,可能是效验的问题。这个盘就是因为G列表满,造成内部检测机制超出检测范围的值,而使硬盘不可使用。
至于SMART和硬盘的重定向的问题我会在以后多跟大家讨论,也请有关这个方面心得如各种型号硬盘的检测机制、SMART程序如何在ATA指令中的调用的朋友多发表意见,共同讨论。

这个盘在清空G表后,要对全盘扫描,清空SMART表,这样硬盘就算是修好了!
数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

刷MOD前应该想到和做到的!
我们知道MOD是硬盘保留区里的模块,从实际情况来看每个盘的MOD都存在差异!如果轻率的刷MOD就会造成严重的后果,为了避免作错,我认为应该先考虑以下几点:


1,在刷MOD前应该先检查坏盘的固件结构,这样我们就可以知道那些是错误的模块,为刷新的MOD提供依据。

2,对坏盘的MOD进行备份。这一点是往往被人忽略的,在你刷错固件后也可能再把以前的固件刷回去,可保证万无一失。在备份的同时会有错误的提示,可忽略。

3,对好盘和坏盘的MOD进行比较分析。通过比较分析我们可以了解模块的功能,可以提高维修的效率。当然这一点比较复杂,在今后我会同大家共同讨论这个问题。

下面我举一个例子来说明:

硬盘型号为迈拓90340D2,故障现象为不可以分区格式化,用MHDD检测全盘为“S”,提示为“IDNF”错误,下面的图为检测固件的结果并带说明:






从上图可看出是00000001.rpm的这个模块有错误,那么我们只要刷这个模块就可以了!

那我们在看一下00000001.rpm这个模块里都包含了什么内容呢?下面的图是我用HEX软件打开这个文件的结果并附说明:





希望大家探讨,我有什么错误请指正。

这个盘我刷了这个模块也并没有修好,但参数的确可以识别了!我用这个盘做例子只是说明一下刷固件应该注意的问题。

我以后会另发贴来说明这个硬盘的维修全过程!





[此贴子已经被作者于2004-6-28 19:08:27编辑过]


数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

还有更多的讨论在:
http://www.sjhf.net/bbs/index.asp
http://www.hddata.net/bbs/
数据恢复答疑群:11856676
推荐网站:[url=http://www.sjhf.net]数据恢复[/url]

TOP

不错!很有技术水平,其实用pc3000也得有效结合其他软件同时来处理一个硬盘的.
这样会有意想不到的表现!
硬盘之家 www.cnhdd.com

TOP

有几篇文章分析的不错
http://www.datarecover.org
上海黄氏数据恢复

TOP

 19 12
发新话题