硬盘自举失败的原因分析及修复

Author: 辽宁 郭筱笠 Date: 1995-03-03

        引起硬盘无法启动的原因大致有几个方面,可以根据屏幕上的提示信息来判断:若开机后屏幕上出现提示信息“Device error”,一般是系统板上用以维持CMOS信息的电池掉电造成的,使得CMOS内容丢失,这种情况的处理比较简单,更换好的电池后,利用机器自身的设置程序,重新设置CMOS参数,特别是硬盘型号,机器就可以正常启动了。若出现提示信息“Invalid partition table”“Invalid drive specification”,一般则是硬盘主引导记录的错误。引起这类错误的原因有:未指定某一分区为可自举分区,特别是把大容量硬盘划分为几个逻辑盘时,没有激活可自举分区;再有就是病毒程序占用了主引导扇区,而把引导程序搬移到其它位置,使引导失败。主引导记录长度占一个扇区,分为两个部分:引导程序和分区表,最后跟两个字节的有效标志(55AAH),引导程序含有检查硬盘分区表部分的程序代码和出错信息、出错处理等内容,程序对分区表进行检查,若分区表中几个分区均无可自举标志或有多个自举标志,则引导程序给出“Invalid partition table”的提示;若硬盘上无DOS分区或盘面记录格式遭破坏,则给出“Invalid drive specification”的提示,要排除上述故障,一般重新格式化硬盘并用FDISK重新划分分区,使DOS分区成为可自举分区即可。但主引导记录遭病毒破坏后,即使对硬盘高级格式化也不能消除病毒,要用DM磁盘管理程序对硬盘做低级格式化和分区。
        若出现提示信息“Error load operation system ”“Missing operation system”、“Non-system disk or disk error”或“Disk boot failure”,一般则是DOS引导扇区的错误。DOS引导扇区也包含两部分:程序部分和数据部分,数据部分含有基本输入和输出的参数表和DOS系统两个隐含的系统文件名,参数表为DOS引导程序、DOS命令和DOS操作提供计算磁盘物理扇区的数据,引导程序根据两个系统文件名引导操作系统文件进入内存。当主引导记录分区检查正确后,根据可自举分区中指出的分区开始地址,读DOS系统引导扇区,若读操作失败,则给出“Error loading operation system”的提示,若正确读出DOS引导扇区后,程序将检查该引导扇区的最后两个字节是否为有效标志55AAH,若不是这两个字节,则给出“Missing operation system”的提示;如果DOS引导扇区中隐含文件名信息被破坏,或者引导程序从磁盘根目录的开始扇区读取的前两个文件名与DOS引导扇区中数据部分保存的系统文件名不符,则给出“Non-system disk or disk error”的提示信息,如果DOS引导扇区记录格式或系统文件因某种原因被破坏,被引导程序读入内存时发生读错误,则给出“Disk boot failure”的提示。要排除故障,先用无毒DOS系统盘启动,用FORMAT C:/S命令重写DOS引导分区,再把C盘上的系统文件恢复就行了。对于病毒感染,也必须对硬盘进行低级格式化后,重新分区,再恢复系统文件。
        以上几种方法都会破坏硬盘上原来的数据,如果事先能把CMOS内容、硬盘主引导记录、DOS分区引导记录备份下来,一旦发生硬盘自举失败,用备份恢复,就不会破坏硬盘上的原有数据了。DOS分区引导记录可以用DOS的DEBUG程序中的L和W命令从其它盘上获得。另外,现在出现许多功能强的工具软件也可以对系统信息进行备份,故障时恢复起来更加方便。