热插拔法修复硬盘故障 寇克勇 2001年 43期 前两天,一个开网吧的朋友打电话给我,他的两台电脑出了问题。我去仔细研究了一下情况,两台机器虽然自检正常但不能进入系统,而且用软盘或光盘也不能进入系统。朋友将正常电脑上的硬盘换到出故障的电脑上后,能够正常引导进入系统,然而将出故障的电脑上的硬盘换在正常的电脑上,就不能进入系统。另外将此硬盘作为从盘接在正常的电脑上面,也不能进入系统(在出现 Starting Windows 95的时候,不再继续引导, 但此时电脑并没有死机,键盘的大小写转换键及小键盘锁定键可以转换)。由此,断定是硬盘的问题。然而硬盘在CMOS中可以被正确设定,并且可以通过自检,应该不是硬故障,估计是软故障。将两个硬盘低格了一遍,但问题仍不能解决。   至此,好像已经山穷水尽,没有任何办法。我坐下来苦苦思索,忽然想起了1997年KV300的逻辑炸弹事件,当时被炸硬盘无论从哪里启动均不能进入系统。事后从报纸上了解,KV300的逻辑炸弹是通过修改硬盘主引导记录的内容而出现此种现象。逻辑炸弹的现象与此故障现象完全一样。由此基本可以断定,是硬盘主引导记录出了问题。   既然是修改了主引导记录,那就通过重写主引导记录来解决这个问题。NU8.0能重写主引导记录,但必须要求系统能正常启动。至此,好像进入了一个怪圈。不能进入系统,则必须重写主引导记录来解决;而重写主引导记录,却又必须正确进入系统。   现在让我们仔细回想一下系统(Windows 98)的引导过程。   (1)BIOS 自检确认所有的硬件连接正确后,开始启动硬盘。   (2)根据CMOS设置的参数,硬盘将磁头定位在物理扇0柱0面1扇上,接着先后读取扇区结束标志55AAH、主引导记录MBR、硬盘分区表HDPT。   (3)根据硬盘分区表提供的数据,硬盘将磁头定位在活动分区(主DOS 引导分区)的引导扇区上(一般为物理扇0柱1面1扇), 接着先后读取扇区结束标志55AAH、操作系统参数。   (4)根据操作系统参数,读取文件分配表FAT和两个隐含系统文件io.sys、msdos.sys。   (5)根据config.sys,读取command.com,使电脑能够进入DOS的实模式,启动基本成功。   (6)根据autoexec.bat、msdos.sys进一步配置Windows 98,并决定进入哪一种模式,如果进入窗口模式,还要根据user.dat、system.dat、win.ini,system. ini等读取相关文件,直到桌面最终出现,启动完毕。   我们知道,在(1)和(2)之间有一个短暂的时间空当,能不能在这个时间空当里,人为中止系统引导,然后拔下有问题的硬盘,等系统正常启动后,再接上那个有问题的硬盘,进行重写主引导记录呢?想到此,我觉得只有这个办法可以一试了。但新问题又出现了,那就是:硬盘热插拔是否会造成硬件(主板或硬盘)的损坏?这时,我想到了前年的CIH病毒大爆发后,许多报纸、杂志介绍的热插拔法重写主板BIOS程序的方法。那硬盘也热插拔试一试(死马当做活马医)。   于是,我找了一台硬盘为昆腾大脚2.1GB的电脑,将有问题的硬盘接在IDE2上面,然后开机,在自检完成后,还没有进入系统前,迅速按下“Pause”键,小心拔下那个有问题的硬盘上的数据线,按任意键继续引导系统,等了一会儿,终于见到了久违的Windows 95画面。正常启动进入Windows 95后,又小心接上那个有问题的硬盘的数据线。再选择重新启动并切换到MS-DOS方式,执行“lock”命令后,进入NU8.0,启动diskedit,查看那个有问题的硬盘,发现该盘主引导记录中分区信息前后重叠。就是这个原因造成系统不能确定活动分区的位置,而陷入死循环。于是将好盘分区表写入出问题的那个硬盘。重新格式化那个有问题的硬盘,安装Windows 98正常。如法炮制,第二个问题盘也同样解决。至此,问题得以完全解决。   编后:硬盘的热插拔具有一定的危险性。如果硬盘分区表出问题,可以先使用分区表恢复工具进行修理。不到万不得已的时候,最好不要进行此项操作。