对计算机用户来说,硬盘故障简直就是一场灾难。由于硬盘在外部存储设备中无可比拟的速度以及存取的便利性,在今天,硬盘已成为最重要的数据载体和系统程序载体。硬盘如果出现故障,则意味着用户的数据安全受到了严重威胁,这是大多数用户所无法容忍而又必须面对的残酷现实。本文准备就PC硬盘故障的一般处理方法作一个简单的探讨,希望能对出现硬盘故障的用户有所裨益。
一、相关知识
在讨论具体的处理方法之前,我们有必要先来了解一下硬盘及其相关系统的原理。
1.硬盘驱动器
这就是我们常说的硬盘。它是一种磁介质的外部存储设备,数据存储在密封于洁净的硬盘驱动器内腔的若干个磁盘片上。这些盘片一般是在以铝为主要成分的片基表面涂上磁性介质所形成,在磁盘片的每一面上,以转动轴为轴心、以一定的磁密度为间隔的若干个同心圆就被划分成磁道(track),每个磁道又被划分为若干个扇区(sector),数据就按扇区存放在硬盘上。在每一面上都相应地有一个读写磁头(head),所以不同磁头的所有相同位置的磁道就构成了所谓的柱面(cylinder)。传统的硬盘读写都是以柱面、磁头、扇区为寻址方式的(CHS寻址)。硬盘在上电后保持高速旋转(可达7200Y/min),位于磁头臂上的磁头悬浮在磁盘表面,可以通过步进电机在不同柱面之间移动,对不同的柱面进行读写。所以在上电期间如果硬盘受到剧烈振荡,磁盘表面就容易被划伤,磁头也容易损坏。硬盘驱动器根据接口的不同可以分为两大类:IDE硬盘(包括IDE、EIDE直至近来的UDMA33都属于这种类型)和SCSI硬盘,必须和相应的控制器一起使用。 硬盘的第一个扇区(0道0头1扇区)被保留为主引导扇区。在主引导区内主要有两项内容:主引导记录和硬盘分区表。主引导记录是一段程序代码,其作用主要是对硬盘上安装的操作系统进行引导;硬盘分区表则存储了硬盘的分区信息。计算机启动时将读取该扇区的数据,并对其合法性进行判断(扇区最后两个字节是否为0x55AA或0xAA55),如合法则跳转执行该扇区的第一条指令。所以硬盘的主引导区常常成为病毒攻击的对象,从而被篡改甚至被破坏。
注:可引导标志:0x80为可引导分区类型标志;0表示未知;1为FAT12;4为FAT16;5为扩展分区等等。
2.硬盘控制器
硬盘控制器是硬盘及其他具有相同接口规范的外部设备(如CDROM驱动器)的管理者,由它来完成驱动器与内存之间的命令及数据传输。目前应用较广的硬盘控制器按其接口的不同分为IDE、SCSI两类,常常整合在主板上,通过数据线与硬盘驱动器相连。毫无疑问,硬盘控制器发生故障或连接不正确将会导致硬盘无法正常工作。
3.CMOS中的硬盘信息
在计算机的CMOS中也存储了硬盘的信息,主要有硬盘类型、容量、柱面数、磁头数、每道扇区数、寻址方式等内容,对硬盘参数加以说明,以便计算机正确访问硬盘。当CMOS因故掉电或发生错误时(启动时一般会提示“CMOS checksum error”或类似信息),硬盘设置可能会丢失或错误,硬盘访问也就无法正确进行。这种情况我们就必须重新设置硬盘参数,如果事先已记下硬盘参数或者有某些防病毒软件事先备份的CMOS信息,只需手工恢复即可;否则也可使用BIOS设置(setup)中的“自动检测硬盘类型”(HD type auto detection)的功能,一般也能得到正确的结果。
二、典型故障及诊断处理
硬盘故障大体上可以分为软故障和硬故障两种情况,下面我们就以无法从硬盘启动几种典型的故障对处理的一般过程加以说明。
1.故障类型的初步判断
无法从硬盘启动的情况主要有如下几种原因:硬盘操作系统被损坏、硬盘主引导区被破坏、CMOS硬盘参数不正确、硬盘控制器与硬盘驱动器未能正常连接、硬盘驱动器或硬盘控制器硬件故障、主板故障。
首先,我们可以根据计算机启动信息对故障类型作一初步判断。
案例1:开机不能完成正常自检(POST),那么可以判断为主板故障或电源故障,对此本文不作讨论。
案例2:开机自检过程中,屏幕提示“Hard disk drive failure”或类似信息,则可以判断为硬盘驱动器或硬盘控制器(提示“Hard drive controller failure”)硬件故障。
案例3:开机自检过程中,屏幕提示“Hard disk not present”或类似信息,则可能是CMOS硬盘参数设置错误或硬盘控制器与硬盘驱动器连接不正确。
案例4:开机自检过程中,屏幕提示“Missing operating system”、“Non OS”、“Non system disk or disk error,replace disk and press a key to reboot”等类似信息,则可能是硬盘主引导区分区表被破坏、操作系统未正确安装或者CMOS硬盘参数设置错误。
2.软故障的一般处理方法
在初步判定故障类型之后,对于软故障,我们可以采取如下步骤处理:
第一步,在存在CMOS发生错误的可能的情况下(如案例3和案例4),确保CMOS中硬盘参数正确。在对硬盘类型不确切情况下,可以让BIOS自动检测,也可参考同种机型的设置。
第二步,若仍不能从硬盘启动,可以用软盘启动(注意BIOS设置中的引导顺序设定)后,试着能否访问硬盘。如果能够访问硬盘(比如说能列出C盘目录),说明很可能只是操作系统被破坏,其他数据应无太大的问题,否则硬盘的主引导区或可引导分区的引导区被破坏。我们可以使用DEBUG或Norton Disk Editor,等工具软件查看硬盘的主引导区是否正常:
A:\>DEBUG
-a ;汇编指令
XXXX:0100 mov ax,201 ;读取一个扇区
XXXX:0103 mov bx,600 ;读至当前段0600处
XXXX:0106 mov cx,1 ;柱面号=1
XXXX:0109 mov dx,80 ;磁头号=0,驱动器号=80
XXXX:010C int 13 ;磁盘读写中断
XXXX:010E int 3 ;断点中断
XXXX:010F
-g ;执行上述指令
-d 600 ;显示主引导区内容