一、序言
不知道你是否曾碰到過從軟碟和硬碟都啟動不了電腦的情形?
一般電腦的硬碟分區表被病毒感染後,若不能啟動機子,
通常從軟碟可以啟動。但在嚴重的情形下,不但從硬碟不能啟動機子,
就是從軟碟也不能啟動。有的惡毒的病毒就能使硬碟被死結。
筆者一次在自己機子上玩弄硬碟鎖時,就被鎖住過一次。
結果在硬碟下選擇DOS或WIN95模式啟動機子都當機,
在軟碟下用DOS啟動也當機;在COMS中將硬碟型別選擇None,
雖然可以從軟碟啟動,但啟動後沒有硬碟,使用軟碟上的FDISK命令,
想重新分區或格式化都沒門。弄得我一籌莫展。
本來,硬碟被鎖住時,可以采用3.0以下的DOS版本啟動機子,
機子啟動後雖然也不認硬碟,
但其不認的原因在於其管理不了現在的大硬碟,
因此可以用Debug修改硬碟分區表,修改後可以啟動。
但在已進入WINDOWS的年代,3.0以下的DOS實難找到,即使找到,
你的機子上恐怕也因沒有5寸軟驅而不能使用。因此,
最好的辦法是編制一個程式來解決這個問題。筆者透過嘗試和思考,
找到一種比較實用的方法,可以輕松解開死結的硬碟,
當然也把自己的硬碟解開了。下面,我將這種方法介紹出來。
二·硬碟鎖住原理
硬碟鎖住通常是對硬碟的分區表做手腳,
因此首先應該了解硬碟的分區表。硬碟分區表位於0柱面0磁頭1磁區,
這個磁區的前面200多個字節是主引導程式,
後面從01BEH開始的64個字節是分區表。分區表共64字節,分為4欄,
每欄16字節,用來描述一個分區。如果是用DOS的FDISK程式分區後
,最多只用兩欄,第一欄描述基本的DOS分區,
二欄描述擴充套件的DOS分區。
分區表一欄的結構與各字節的含義如下:
00H—標誌活動字節,活動DOS分區為80H,其它為00H。
01H—本分區邏輯0磁區所在的磁頭號。
02H—邏輯0磁區所在柱面中的磁區號。
03H—邏輯0磁區所在的柱面號。
04H—分區型別標誌。
05H—本分區最後一個磁區的磁頭號。
06H—最後一個磁區的磁區號。
07H—最後一個柱面的柱面號。
08H—硬碟上在本分區之前的磁區總數,用雙字表示。
0CH—本分區的磁區總數,從邏輯0磁區計數,不含隱藏磁區,
用雙字表示。
在上面的介紹中給出的柱面號與磁區號雖然各占一個字節,
但實際上磁區號用6位表示,柱面號用10位表示,
磁區號所在字節的最高兩位實際上是柱面號的最高兩位。
分區表的最後兩個字節是分區表的有效標誌,如果將其改變,
將不能從硬碟啟動,這是一種簡單的鎖住硬碟的方法。
解決的辦法是從軟碟啟動,啟動後硬碟仍然可以使用。
用Debug或Noratn中的Diskedit軟體將硬碟該分區表中的標誌恢復,
則從硬碟啟動也沒有問題了。
鎖住硬碟的另一種方法是對分區參數做手腳,
如果將分區參數全部變為0,則啟動時由於找不到分區參數,
從硬碟是沒法啟動,從軟碟啟動後也不認硬碟,
如果你敲入碟符C並回車,將出現提示Invalid
driver specification。
但所幸的是,畢竟可以啟動機子,不認硬碟沒關系,
在A槽上用DOS的Debug仍然可以讀出硬碟0柱面0磁頭1磁區的內容,
修改後再寫入0柱面0磁頭1磁區,重新啟動機子又沒問題了。
如果將分區表參數隨意改為其它參數,
則有可能不能用可以安裝DOS的DOS系統槽啟動,
按F3結束後將出現記憶體分配錯誤,
不能裝載DOS的命令直譯器COMMAND的提示,系統就當機了,
筆者就曾碰見過這種情形。
但用一張格式化成系統槽的軟碟則可以順利啟動,只要有Debug,
你仍然可以將分區表參數修改回去。
可怕的事情是,如果你不幸將分區表參數改成一個迴圈鏈,
即C槽的下一個分區指向D驅,D驅的下一個分區又指向C區,
這樣迴圈下去,
DOS啟動或WIN95啟動時由於無休止的讀取邏輯驅動器,
就只有當機的份了。這是只要有硬碟存在,
不管你用軟碟還是硬碟都沒法啟動機子了,
由於不能啟動是由於硬碟造成的,即使你將硬碟下到其它電腦上,
也沒法使用,這樣硬碟就徹底被鎖死了,筆者所遭遇就是此情形。不信
,你只需將硬碟0柱面0磁頭1磁區的1D0H處改為1(
如果你的D驅開始柱面號不夠大,此處本來就為1),將1D1H處改為0
,表示D槽的開始柱面號跟C槽一樣,看看你的電腦還能不能啟動,
不過你在沒有充分的準備前絕不要試。
一個完整的硬碟鎖程式,不過是重新覆寫0柱面0磁頭1磁區的引導程式
,並將分區表破壞或故意制造一個迴圈分區表,
而將真正的硬碟分區表參數和引導程式放在其它隱藏磁區並保護起來,
如果啟動時口令不對,則不能啟動機子,口令對了則順利啟動。
這種硬碟鎖程式,情形好的還可以用軟碟啟動;
情形嚴重的就是連軟碟也不能啟動,硬碟真被鎖住。