馬上注冊,結交更多好友,享用更多功能。
您需要 登錄 才可以下載或查看,沒(méi)有帳號?注冊
x
不知道你是否曾碰到過(guò)bios里面能夠檢測到硬盤(pán),但是你從軟盤(pán)和硬盤(pán)都啟動(dòng)不了計算機的情形?也許這時(shí)候你就會(huì )認為是硬盤(pán)壞掉了,可實(shí)際上,很有可能是你的硬盤(pán)中了邏輯鎖。硬盤(pán)邏輯鎖總共有三種,本質(zhì)都是對硬盤(pán)的分區表作了修改,以前只是一些黑客程序使用它,開(kāi)始大范圍對計算機造成危害是在臭名昭著(zhù)的KV3000反盜版事件的時(shí)候,那時(shí)江民公司為了打擊盜版。在KV3000新版升級程序植入了一個(gè)黑客程序,當檢測到用戶(hù)使用了盜版的KV3000以后就將硬盤(pán)的分區表鎖住,被稱(chēng)為“主動(dòng)邏輯鎖”,其實(shí)就是硬盤(pán)邏輯鎖的一種,當時(shí)卻使無(wú)數無(wú)辜的人受害,江民公司也因此被定罪。這是舊事不談,下面我們就來(lái)介紹一下它的三種情況和解決方法。首先我們來(lái)了解一下硬盤(pán)的分區表。硬盤(pán)分區表位于磁盤(pán)的0磁頭0柱面1扇區,這個(gè)扇區從01BEH開(kāi)始的64個(gè)字節就是分區表。分區表共64字節,分為4欄,每欄16個(gè)字節描述一個(gè)分區。如果用FDISK程序分區,那最多只用兩欄,第一欄描述主引導分區,第二欄描述擴展分區。分區表的結構與各字節的含義如下: 00H?標志活動(dòng)字節;顒(dòng)DOS分區為80H,其它為00H。 01H?本分區邏輯0扇區所在的磁頭號。 02H?邏輯0扇區所在柱面中的扇區號。 03H?邏輯0扇區所在的柱面號。 04H?分區類(lèi)型標志。 05H?本分區最后一個(gè)扇區的磁頭號。 06H?最后一個(gè)扇區的扇區號。 07H?最后一個(gè)柱面的柱面號。 08H?硬盤(pán)上在本分區之前的扇區總數,用雙字節表示。 0CH?本分區的扇區總數,從邏輯0扇區計數,不含隱藏扇區,用雙字節表示。分區表的最后兩個(gè)字節是它的有效標志,改變后將無(wú)法從硬盤(pán)啟動(dòng),這就是第一種簡(jiǎn)單的鎖住硬盤(pán)的方法。不過(guò)比較容易解決,只要從軟盤(pán)啟動(dòng)就一切正常,啟動(dòng)后用Debug或Diskedit等軟件將硬盤(pán)分區表中的標志恢復就可以了。第二種方法是修改分區參數,如果將分區參數全部變?yōu)?,則啟動(dòng)后由于找不到分區參數無(wú)法從硬盤(pán)啟動(dòng),用啟動(dòng)盤(pán)從軟盤(pán)啟動(dòng)后也不認硬盤(pán),不過(guò)機器畢竟能夠啟動(dòng),我們可以在啟動(dòng)后用軟盤(pán)里的debug等工具修復被改動(dòng)的分區表參數,重新啟動(dòng)后就沒(méi)問(wèn)題了。我們重點(diǎn)要講的就是第三種,也就是上文提到的“主動(dòng)邏輯鎖”,它是因為分區表參數被修改成了一個(gè)死循環(huán)。正常啟動(dòng)時(shí)DOS接管硬盤(pán)后查找分區表,主引導分區被定義為C盤(pán),然后查找邏輯盤(pán),定義為D盤(pán),然后是E、F、G,而這個(gè)主動(dòng)邏輯鎖就是將第一個(gè)邏輯盤(pán)(一般是D盤(pán))的下一個(gè)分區指向它本身,不斷讀取下一個(gè),其實(shí)就是讀它自己,結果陷入死循環(huán)。因為DOS啟動(dòng)必須包含基本輸入輸出文件io.sys(我們在windows下也可以看到,位于C盤(pán)根目錄下)。而它是有些固執的,啟動(dòng)以后非要把硬盤(pán)分區表讀完然后接管不可,所以無(wú)論我們用什么啟動(dòng),它一查找邏輯盤(pán)就死循環(huán),我們就看到了硬盤(pán)燈常亮系統掛起的情況了。那么我們如何解開(kāi)它呢?從根本上講就是讓io.sys不起作用或者在它起作用以前將分區表參數修改回來(lái)。 1、debug法。用這種方法首先必須要能啟動(dòng)機器,我們可以在一臺正常的電腦上修改啟動(dòng)軟盤(pán)中的io.sys文件,查找到第一個(gè)“55aa”字符串,找到以后修改為任何其他數值,用這張啟動(dòng)軟盤(pán)你就可以順利地帶著(zhù)被鎖的硬盤(pán)啟動(dòng)了。不過(guò)這時(shí)該硬盤(pán)的分區表已經(jīng)不正常,所以我們無(wú)法用FDISK來(lái)刪除和修改分區,而且仍然無(wú)法用正常的啟動(dòng)盤(pán)啟動(dòng)系統,這時(shí)可以用DEBUG來(lái)手工恢復。具體命令如下: a:\>debug -a -????:100 mov ax,0201(讀一扇區內容) -????:103 mov bx,500(設置一緩存地址) -????:106 mov cx,0001(設置第一硬盤(pán)的硬盤(pán)指針) -????:109 mov dx,0080(讀零磁頭) -????:10c int 13 (硬盤(pán)中斷) -????:10e int 20 -????:0110 回車(chē)(注:-????各硬盤(pán)不相同,跟后面的:1??都是自動(dòng)顯示的,我們要輸入的只是其后的內容) -g -d500 (查看運行后緩存地址500的內容,這時(shí)候我們會(huì )發(fā)現地址6be開(kāi)始的內容就是硬盤(pán)分區表信息,如果硬盤(pán)的擴展分區正是指向自己,那么DOS或WINDOWS啟動(dòng)時(shí)就會(huì )因查找邏輯分區而陷入死循環(huán)。)在DEBUG指示符下繼續修改內存數據: E6BE ??.0 ??.0 ??.0…… …… ……55 AA 55 AA是硬盤(pán)有效的標志,不要修改,??.0表示把以前的數據“??”改成了0,再用硬盤(pán)中斷13把修改好的數據寫(xiě)入硬盤(pán)就可以了: A:\>debug a 100 (表示修改100地址的匯編指令) -????:100 mov ax,0301 (寫(xiě)硬盤(pán)一個(gè)扇區) -????: 回車(chē) -g (運行) -q (退出)退出后運行fdisk/mbr來(lái)重置硬盤(pán)引導程序,重新啟動(dòng)即可。 這種方法雖然麻煩一點(diǎn),但是它能夠恢復硬盤(pán)分區表,也就是說(shuō)恢復以后硬盤(pán)中的數據也不會(huì )丟失。而以下方法雖然更加方便,但是要么硬盤(pán)中的數據難保,要么有一定危險性。 2、外掛軟件法這種方法原理都是繞過(guò)bios對硬盤(pán)的檢測而直接用一些能夠自己查找硬盤(pán)的軟件來(lái)控制硬盤(pán)。首先是DM,現在每一個(gè)硬盤(pán)廠(chǎng)商都有自己的DiskManager程序,而且都能放進(jìn)一張軟盤(pán)里,你可以下載一個(gè)使用,如果不清楚自己硬盤(pán)的牌子,也可以用IBM出的DM萬(wàn)用版,不過(guò)它對現在32G以上的大硬盤(pán)支持不好。我們先在bios里面將硬盤(pán)所在的IDE口設置為none,(如果你不知道哪個(gè)是,全部設為none也可以),然后用啟動(dòng)盤(pán)啟動(dòng)系統,啟動(dòng)完成后將軟盤(pán)取出,放入裝有DM軟件的軟盤(pán),運行DM,它會(huì )檢測到你的病硬盤(pán)的存在,然后將它重新分區就搞定了。DM具體用法比較簡(jiǎn)單,就不詳細說(shuō)了,不過(guò)對E文不太好的朋友可能有些困難,請教身邊的高手吧。我們還可以使用低格軟件,也是每一種硬盤(pán)都有自己的低格軟件,但也有通用的Lformat程序(只有30多k),前面的做法相同,還是在bios里面屏蔽掉硬盤(pán),用啟動(dòng)盤(pán)啟動(dòng),然后換軟盤(pán)運行低格程序對硬盤(pán)進(jìn)行低級格式化,由于分區表只在硬盤(pán)最前列部分,所以估摸著(zhù)格過(guò)前面的分區表部分就可以停止了,然后重新啟動(dòng)在bios里面將硬盤(pán)設出來(lái),就可以像一塊新的硬盤(pán)一樣對它進(jìn)行分區等操作了。 3、熱插拔這是最危險的一種方法,很有可能將你的硬盤(pán)燒毀,所以請謹慎。具體做法很簡(jiǎn)單,首先將硬盤(pán)的電源線(xiàn)拔掉,然后軟盤(pán)啟動(dòng)系統,啟動(dòng)完成后再將硬盤(pán)的電源線(xiàn)插上,這時(shí)候系統就能夠控制硬盤(pán)了,可以對它進(jìn)行分區,恢復分區表等操作。我有一個(gè)菜鳥(niǎo)朋友就是在熱插拔硬盤(pán)3次以后搞定的。不過(guò)此種方法存在危險,強烈不推薦使用,如因此損壞,本人概不負責。其實(shí)最好的情況是你有分區表備份,那恢復起來(lái)就比較容易了,而且數據也不會(huì )丟失。所以說(shuō)呢,亡羊補牢固然不錯,但是如果能事先就做好了保險工作,那就不用愁了。 |