對計算機用戶來說,硬盤故障簡直就是一場災難。由於硬盤在外部存儲設備中無可比擬的速度以及存取的便利性,在今天,硬盤已成為最重要的數據載體和系統程序載體。硬盤如果出現故障,則意味著用戶的數據安全受到了嚴重威脅,這是大多數用戶所無法容忍而又必須面對的殘酷現實。本文准備就PC硬盤故障的一般處理方法作一個簡單的探討,希望能對出現硬盤故障的用戶有所裨益。
一 相關知識
在討論具體的處理方法之前,我們有必要先來了解一下硬盤及其相關系統的原理。
1.硬盤驅動器
這就是我們常說的硬盤。它是一種磁介質的外部存儲設備,數據存儲在密封於潔淨的硬盤驅動器內腔的若干個磁盤片上。這些盤片一般是在以鋁為主要成分的片基表面塗上磁性介質所形成,在磁盤片的每一面上,以轉動軸為軸心 以一定的磁密度為間隔的若干個同心圓就被劃分成磁道(track),每個磁道又被劃分為若干個扇區(sector),數據就按扇區存放在硬盤上。在每一面上都相應地有一個讀寫磁頭(head),所以不同磁頭的所有相同位置的磁道就構成了所謂的柱面(cylinder)。傳統的硬盤讀寫都是以柱面 磁頭 扇區為尋址方式的(CHS尋址)。硬盤在上電後保持高速旋轉(可達7200Y/min),位於磁頭臂上的磁頭懸浮在磁盤表面,可以通過步進電機在不同柱面之間移動,對不同的柱面進行讀寫。所以在上電期間如果硬盤受到劇烈振蕩,磁盤表面就容易被劃傷,磁頭也容易損壞。硬盤驅動器根據接口的不同可以分為兩大類:IDE硬盤(包括IDE EIDE直至近來的UDMA33都屬於這種類型)和SCSI硬盤,必須和相應的控制器一起使用。
硬盤的第一個扇區(0道0頭1扇區)被保留為主引導扇區。在主引導區內主要有兩項內容:主引導記錄和硬盤分區表。主引導記錄是一段程序代碼,其作用主要是對硬盤上安裝的操作系統進行引導;硬盤分區表則存儲了硬盤的分區信息(見表1)。計算機啟動時將讀取該扇區的數據,並對其合法性進行判斷(扇區最後兩個字節是否為0x55AA或0xAA55 ),如合法則跳轉執行該扇區的第一條指令。所以硬盤的主引導區常常成為病毒攻擊的對象,從而被篡改甚至被破壞。
注:可引導標志:0x80為可引導分區類型標志;0表示未知;1為FAT12;4為FAT16;5為擴展分區等等。
2.硬盤控制器
硬盤控制器是硬盤及其他具有相同接口規范的外部設備(如CDROM驅動器)的管理者,由它來完成驅動器與內存之間的命令及數據傳輸。目前應用較廣的硬盤控制器按其接口的不同分為IDE SCSI兩類,常常整合在主板上,通過數據線與硬盤驅動器相連。毫無疑問,硬盤控制器發生故障或連接不正確將會導致硬盤無法正常工作。
3.CMOS中的硬盤信息
在計算機的CMOS中也存儲了硬盤的信息,主要有硬盤類型 容量 柱面數 磁頭數 每道扇區數 尋址方式等內容,對硬盤參數加以說明,以便計算機正確訪問硬盤。當CMOS因故掉電或發生錯誤時(啟動時一般會提示“CMOS c hecksum 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”或類似信息,則可能是CM OS硬盤參數設置錯誤或硬盤控制器與硬盤驅動器連接不正確。
案例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(菜單Object/ Partition table)等工具軟件查看硬盤的主引導區是否正常:
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 ;顯示主引導區內容
如無法訪問主引導區,則顯然是硬故障。否則查看引導程序和分區表是否正常(可以反匯編查看指令或與正常的主引導扇區對比),如果發現引導程序異常則可使用殺毒軟件清查病毒或恢復主引導區,也可用DEBUG手工恢復主引導區:
(續前,假設已從正常的機器上獲得主引導區存為文件mboot.dat)
-n mboot.dat ;讀文件mboot.dat
-l 800 ;讀至當前段0800處
-m 7be l 40 9be;將原分區表復制到正常的主引導區
-a 100 ;修改第一條指令
XXXX:0100 mov ax,301 ;將0800處數據寫回主引導扇
XXXX:0103 mov bx,800 ;
XXXX:0106
-r ip ;修改當前指令指針
IP:010E 0100 ;當前指令指針指向0100
-g ;執行
第三步,在恢復主引導區之後,如果仍然不能正常啟動操作系統,但已能夠訪問C盤,那麼我們可以備份重要信息 重裝操作系統即可。如果C盤仍然無法訪問,則可以斷定C盤的引導區(包含磁盤參數表等重要信息)或文件系統(FAT FDT)已經損壞。這種情況手工修復較為復雜,而且容易產生誤操作,利用Norton Disk Doctor或微軟的ScanDisk這樣的磁盤修復軟件是比較合適的。這裡我們以DOS版Norton Utility的NDD為例(注意:低版本的NDD在對磁盤進行診斷時可能不能正確診斷Windows95以上的文件系統)予以說明:
在NDD的菜單中選擇Options/General確認NDD將進行包括主引導區和CMOS在內的全面檢查(如圖3所示),然後在主菜單中選擇Diagnose Disk對硬盤進行診斷,NDD在發現錯誤時將會自動報告(如圖4所示),並提示錯誤描述(Description)和推薦意見(Recommendation),可以根據情