|
|
|
由于误操作(如:错误地使用压缩代理)或病毒感染等原因,硬盘有时会产生一种“硬盘死锁”故障。所谓硬盘死锁,是指电脑在引导机器载入操作系统过程中,由于循环分配驱动器盘符,导致驱动器逻辑盘符用尽而使机器陷入死循环状态,最后使机器无法正常启动操作系统。硬盘死锁一旦发生,其故障现象是:只要故障硬盘安装到电脑中,就无法从硬盘、软驱启动操作系统。即使把故障硬盘安装成从属IDE设备,同样会导致正常软硬盘无法引导机器。这种硬盘的故障现象,其表象似乎比真正的物理故障盘还严重,其实这是一种纯软故障。但由于这种故障硬盘安装到电脑中后,正常盘也不能引导机器了,所以一般的解决方法是,使用CMOS SETUP中的低级格式化功能对其进行低格。然而用这种方法存在很多弊病。
2 l0 P, f1 V' s/ \. G6 b* I; a
+ k" E/ V' D! T+ p& c 事实上解决这种故障的原理非常简单,即只要将硬盘上的主引导扇区的所有内容清为0,使这种硬盘如同新盘,就可以解决死锁问题。问题是这种硬盘接入机器后,机器无法引导操作系统,所以不能使用在操作系统下运行某些刷新主引导扇区程序的方法来解决。如何在未引导操作系统的情况下不低格硬盘解决死锁问题呢?为此,笔者通过实践研究,找到了一种非常简单的方法,无须启动操作系统或对硬盘进行低格,可万无一失解决硬盘循环死锁问题。
1 Q- n: n6 E6 ^( j( V- v m8 W! ]+ n7 \1 C
观察死锁硬盘的故障现象,不难看出这种故障是在引导操作系统的过程中产生的,如果能在分配驱动器盘符之前,把对硬盘引导扇区刷新的指令写入软系统盘的引导扇区,让BOIO程序执行这个特别的引导扇区,就可以达到目的。
, Q) |& i/ ]+ W1 J, F d# f z$ ?
具体操作方法如下:
. `; Q9 K3 b- F9 Z; \
( Q% C+ L8 |0 z G1 n1.先取下带有循环死锁故障硬盘,准备一张系统软盘(带有DEBUG调试程序)和一张空白软盘,并将空白软盘格式化。! E' o1 v- W1 ~- I. K7 e
% u, w. {/ q9 Y, v$ g- a4 v2.生成一张特殊软盘。用系统软盘启动机器,执行DEBUG命令后,取出系统盘,插入空白软盘(待制作的特殊软盘),在DEBUG环境下进行如下操作:8 M4 p, V, x p
A:\>DEBUG
6 w7 p% F( p5 s! l9 j& ~* A-A 0100
1 L; G7 w3 k4 _/ p( n, @/ D- MXXXX:0100 XOR AX,AX+ p7 i8 ]5 d; L" w8 ?7 ~* l- h3 A$ ^% j
XXXX:0102 PUSH AX
# A: q! k" o) V- E! J" H NXXXX:0103 POP DS
) U5 X8 x; _- }( DXXXX:0104 PUSH AX
# Y! l/ h6 a& ]. \7 V9 DXXXX:0105 POP ES
) f; r5 I1 ?2 E2 S# b/ o# aXXXX:0106 MOV CX,100
" S. [4 a2 R/ X" lXXXX:0109 MOV BX,7C00
/ r7 N* C# x* eXXXX:010C MOV WORD PTR [BX],00' z* c8 N: G) W) i2 U
XXXX:0110 INC BX
3 n4 {' B" n# Q/ g6 \: h+ qXXXX:0111 INC BX
# t/ V, ], ^" C6 i ^$ u/ \XXXX:0112 LOOP 10C
/ V" b- F+ W% D; xXXXX:0114 MOV AX,0301
. O, D/ l# h6 y: [# i& _% aXXXX:0117 MOV CX,0001
1 C6 D S$ D* u! X3 s3 i' FXXXX:011A MOV DX,80* e$ c2 ]+ u+ I& X- D. D' \
XXXX:011D MOV BX,7C00
' s9 H N# h0 C) S/ b% _XXXX:0120 INT 13
' ?! b" T3 O& h) tXXXX:0122 JMP FFFF:0000
- }! m9 C% }( g% i$ M8 iXXXX:0127
& S" x& M+ }! B- h" F! X-W 100 0 0 1, h' b* Q# `. I
-Q
4 P4 b. \+ w+ h# e; |' f! j( I通过以上操作,特殊软盘就制作好了。
/ t* T1 W f+ x. \; n7 z. D
4 D t& W& H0 o! _9 q) o& |9 E3. 关闭机器,制作好的特殊软盘保留在软盘驱动器中。将故障硬盘装回机器中,其电缆连接方法决定了上述MOV DX,80指令送入DX寄存器中的值。若将故障盘联接成第一硬盘或系统中只接有此故障硬盘,即上述MOV DX,80指令中送入DX寄存器的值为80H,若系统中接有两个硬盘,且将故障盘连接成第二硬盘,即送入DX寄存器的值应为81H。' }2 {4 l) v# ?% B% F: G. Y
; X; S0 X- p. H+ W. A4 i2 O
4.上电重新启动机器,当机器开始从软盘载入操作系统时,大约过2-3秒钟后,机器会自动复位重启动。
( \' g- Y0 e \: e; d# K/ x- b5 _8 p- ?9 f$ \5 j
5. 将特殊软盘取出,插入正确系统软盘,让机器从软盘引导操作系统。若无意外,机器就会正常启动,当机器出现A:\>提示符时,标志着故障硬盘的循环死锁故障已经排除。此后就可以对该硬盘进行正常的分区格式化等操作。如果试图恢复硬盘上的数据,请不要分区格式化,接着进行下一步骤。
H) _$ ]# k& E; p3 `2 y/ F6.用 KV300(Z+版以上)引导机器,执行KV300杀毒软件,用该软件的硬盘分区扫描恢复功能,对硬盘进行分区扫描,即按 F10功能键,然后插入一张格式化好的空盘,回答“Y”,耐心等待十几分钟,再回答“Y”,当屏幕显示“OK!OK!OK!”的提示时。就表示硬盘的分区已恢复。重新启动机器,一切完好如初。 |
|