簡介
當DOS啟動時,系統會自動搜尋硬碟中的各個分區的信息,如類型、大小等,以使系統能夠識別硬碟,分別分配為C、D、E、F等驅動器,並使用戶能對其 進行各種操作。而“邏輯鎖”正是利用了這一點,通過修改硬碟的分區表使分區表發生循環,即把擴展分區的第一個邏輯盤指向自身,使某些DOS系統啟動時查找 分區時發生死循環而無法啟動。這其實是DOS啟動時的一個錯誤造成的。據說早在1992年,就有一個叫Mike的反病毒專家發現了此問題,並報告給了有此問題的DOS的生產廠 家,如生產PC-DOS的IBM公司、生產DR-DOS/NovellDOS的Novell公司、生產MS-DOS的微軟公司等等。不久後,IBM、 Novell等公司紛紛宣布其DOS的新版本已徹底解決了此問題,唯有擁有MS-DOS的微軟公司沒有理會,導致MS-DOS的新版本,如6.x、7.x 等仍繼續存在此問題。
危害
由於微軟的MS-DOS使用得最為廣泛,所以其影響和危害也最大。一旦用戶的硬碟被“邏輯鎖”鎖住,各種微軟的作業系統,如MS-DOS 5.x/6.x/7.x/8.0等的啟動盤均無法啟動,造成了硬體故障的假像,而且連許多高手對此都束手無策。由於這種現像非常可怕,將導致電腦無法使 用,所以許多人紛紛去尋找預防及解決的辦法。
解決辦法
非MS-DOS的作業系統啟動
由上文可知,“硬碟邏輯鎖”主要對微軟的MS-DOS系統發生影響,因此,使用其它的DOS啟動就可以了。為此,我特意對幾種較實用的高版本的DOS,如MS-DOS 7.10、PC-DOS 7.10、DR-DOS 7.05、ROM-DOS 7.10、FreeDOS beta9、pts-DOS Pro 2000的啟動盤在硬碟中了“邏輯鎖”的情況下進行了啟動測試,結果如下:
PC-DOS 7.10啟動盤:啟動一切正常;
DR-DOS 7.05(版本號:7.10)啟動盤:啟動一切正常;
ROM-DOS 7.10啟動盤:啟動一切正常;
FreeDOS beta9(版本號:7.10):啟動時顯示硬碟有錯誤,並完全正常啟動;
PTS-DOS Pro 2000(版本號:6.90):啟動一切正常。
註:以上各種DOS都十分穩定,且均支持FAT32分區和大硬碟,其中ROM-DOS 7.10還完全本地支持長檔案名稱,且兼容性非常好。
因此,可以用任何一種以上的dos啟動盤啟動帶有“邏輯鎖”的硬碟,啟動後已被鎖住的硬碟驅動器的盤符(如C:)雖然看不到,但各種磁碟分區軟體,如 Norton Disk Editor 2002、Norton Disk Doctor 2002,以及DOS自帶的FDISK程式等,均可以顯示出被鎖住的硬碟,此時既可用上面提到的DISKEDIT等工具對此硬碟進行查看/手工修復等操 作,也可以用一些軟體進行自動修復,如NetResq、SRCTOOLS等,以徹底去掉硬碟上的“邏輯鎖”,且硬碟上的數據不會受到任何損壞。
修復的MS-DOS啟動盤啟動
雖然MS-DOS啟動盤在正常狀態下不能在硬碟被鎖住的情況下啟動電腦,但是由於這僅僅是MS-DOS的啟動檔案IO.SYS中的一個BUG,所以只要修 復此BUG,MS-DOS啟動盤就不會受到“邏輯鎖”的影響而能正常啟動了。不過,即使是修復BUG,也應該使用正確的方法。有人提到過通過修改 IO.SYS中的硬碟分區標記“55AA”的方法來解決問題,其實此法非常不好。因為,這種方法其實是讓IO.SYS徹底忽略硬碟的存在,即通過跳過硬碟 的方法來啟動軟碟,這樣一來,無論硬碟是否被鎖住,用此啟動軟碟啟動後硬碟都不能被識別,因此此啟動盤就不能作為正常的MS-DOS啟動盤了。相反,如果 採用正確的方法修復IO.SYS中的BUG的話,用此軟碟啟動後,若硬碟是好的,則能夠正常識別,而即使是硬碟被“邏輯鎖”鎖住了,也可以像上面的方法 (即“使用非MS-DOS的作業系統啟動”)中提到的用PC-DOS、DR-DOS、ROM-DOS、FreeDOS、PTS-DOS Pro等啟動軟碟啟動後進行進一步的修復等操作。還有人提到過MS-DOS的某些低版本,如3.2版的啟動盤以啟動電腦。但這顯然有很多缺點,一是舊版本 的DOS很難找到,二是由於其版本太低,功能很少,兼容性也很差;三是這些低版本的DOS自身不支持大硬碟(連32M都不支持)、邏輯分區等,甚至會對硬 盤造成真正的破壞,而且,MS-DOS 3.2等版本甚至連1.44M軟碟都不認識。可見,用低版本的MS-DOS啟動的方法並不是很可行。因此,使用好的方法修正高版本的MS-DOS的 IO.SYS中的BUG是很重要的。以MS-DOS 6.x的啟動盤為例,只需用任何16進制編輯器(如PCTOOLS等)查找IO.SYS檔案中的16進制字元串“07 72 03”,並將最後的“03”替換為“06”即可。其它一些版本的MS-DOS也可以使用類似的方法,比如MS-DOS 7.10的IO.SYS的具體修改方法請見 “中國DOS聯盟聯合論壇” 。這樣一來,微軟的MS-DOS啟動盤也可以像其它各種DOS那樣在硬碟被“邏輯鎖”鎖住的情況下正常啟動了。
以上提到的方法都是解決“硬碟邏輯鎖”的最直接的方法(即“使用不受‘邏輯鎖'影響的DOS啟動盤來啟動電腦”),也是最好的辦法。因此,只要製作一張上 面提到的任何一種啟動盤(如PC-DOS 7.10啟動盤、ROM-DOS 7.10啟動盤、FreeDOS啟動盤,或修復的MS-DOS啟動盤等)就可以了。既可平時將此啟動盤當作正常啟動盤使用,而且當硬碟被鎖住時則可用此啟 動盤啟動並解決問題。
其他方法
有人還提到了其它的“方法”,如硬碟熱插拔、DM低格等等,不僅麻煩、危險,而且會可能對硬碟中的所有數據造成破壞。比如硬碟熱插拔後(需拆機箱且拿下硬 盤,並在啟動後再重新裝上硬碟,非常麻煩且危險),即使是用軟碟啟動成功了,此時硬碟將徹底不能被識別,包括各種硬碟工具也不能識別。如果用DM跳過 BIOS對硬碟進行低格,這樣一來,硬碟上的所有數據將全部丟失,不可恢復,損失非常大。由此可見,硬碟熱插拔等“方法”都是不實用也不可行的。