常见问题 硬盘的常见问题>>

电脑使用一直正常,某天上网突然死机,重启系统后,自检正常,过后一直无响应。使用软盘、光盘、挂双硬盘都无法正常启动。

发布时间:2010-10-22 17:31:04

答案:

 根据现象分析是被黑客或者恶意程序设置了硬盘逻辑锁(也称逻辑炸弹)。正常情况下,系统启动时先查找引导分区,然后依次查找扩展分区的各个逻辑分区。硬盘逻辑锁修改了第一个逻辑分区的地址,将其改为主引导分区的地址。这样,在启动时,系统在查找逻辑分区时总是找到引导分区,就形成了死循环,导致任何方式都无法正常启动系统。
  下面简单介绍三个比较有效的逻辑锁解锁方法。
  最简单的方法是使用DM之类的软件对硬盘进行低级格式化,这种方法不能保留硬盘上的所有数据。开机进入BIOS设置程序,将带有逻辑锁的硬盘设置为None。重启,使用软盘启动到DOS环境,运行事先复制到另一张软盘上的DM程序,它可以正确识别被设置为None的硬盘,此时进行低级格式化即可(只需低级格式化开始的几个磁道,即格式化开始一会就停止)。这样低级格式化后的硬盘就可以正常启动、重新分区和格式化了。
  另一种方法是通过汇编语句修改分区信息,这种方法稍微复杂,但可以保留部分或者全部硬盘数据。首先准备一张DOS启动盘,将Debug和Fdisk程序复制到上面。在其他电脑上,将软盘上的IO.SYS文件的只读等属性取消,并使用二进制编辑工具(DOS环境的Debug和PCtools,Windows环境的Ultraedit)进行修改,搜索第一个55AA字符串,改为任意字符(例如66BB)。接下来就可以使用修改后的软盘启动电脑了。
  启动系统后,需要通过Debug程序手工修改被修改的分区表,步骤如下:
  A:\>debug
  -a
  -xxxx: 100 mov ax, 0201 (读一个扇区的内容)
  -xxxx: 103 mov bx, 500 (设置一个缓存地址)
  -xxxx: 106 mov cx, 0001 (设置第一个硬盘的硬盘指针)
  -xxxx: 109 mov dx, 0080 (读零磁头)
  -xxxx: 10c int 13 (硬盘中断)
  -xxxx: 10e int 20
  -xxxx: 0110 (退出程序)
  -g (运行)
  -d 500 (查看地址为500的寄存器)

  从地址6BE开始的内容是硬盘分区的信息,使用E命令修改内存数据:

  E6BE
  ××.0 ××.0 ××.0 ... 55 AA
  把数据××改成0,再用硬盘中断13把修改好的数据写入硬盘:
  A>\debug
  -a 100 (要修改的寄存器地址为100)
  -xxxx: 100 mov ax, 0301 (写硬盘一个扇区)
  -xxxx: (直接按回车)
  -g (运行)
  -q (退出)
  最后,执行Fdisk/MBR命令,重写硬盘引导区的引导程序,重启电脑。
  第三个方法是制作一张“解锁”软盘。首先将故障硬盘卸下,使用带有Debug程序的DOS启动盘启动系统,执行Debug命令,然后将启动盘取出,插入一张已格式化的空白软盘,在Debug环境中进行如下操作:
  -A 0100
  XXXX:0100 XOR AX, AX
  XXXX:0102 PUSH AX
  XXXX:0103 POP DS
  XXXX:0104 PUSH AX
  XXXX:0105 POP ES
  XXXX:0106 MOV CX, 100
  XXXX:0109 MOV BX, 7C00
  XXXX:010C MOV WORD PTR [BX], 00
  XXXX:0110 INC BX
  XXXX:0111 INC BX
  XXXX:0112 LOOP 10C
  XXXX:0114 MOV AX, 0301
  XXXX:0117 MOV CX, 0001
  XXXX:011A MOV DX, 80
  XXXX:011D MOV BX, 7C00
  XXXX:0120 INT 13
  XXXX:0122 JMP FFFF:0000
  XXXX:0127
  -W 100 0 0 1
  -Q
  接下来,关闭系统。将故障硬盘单独作为主盘安装好,使用刚制作的软盘启动系统,系统会自动进行修复,然后重启。将软盘取出,换上DOS启动盘,启动到DOS环境。此时,硬盘逻辑锁已经解除,但还无法使用,需要重新进行分区和格式化。如果想保留硬盘上的数据,可以使用KV300(Z+版以上)进行分区扫描恢复操作。
  说明:除了这三个方法,还可以通过热插拔硬盘的方法跳过逻辑锁的控制,在用软盘启动系统后再接上硬盘电源线,然后手工修改引导程序。但此方法过于危险,很容易毁坏硬件,不建议使用。

本FAQ适用范围

下一步您可以:
查看硬盘产品 >>