由于Windows 95/98/ME(以下簡(jiǎn)稱Win9X)和Windows NT/2000/XP/Server 2003(以下簡(jiǎn)稱WinNT)的引導(dǎo)方式完全不同,所以在多重啟動(dòng)系統(tǒng)里面,微軟采用了一種很巧妙的方式來(lái)解決這個(gè)問(wèn)題。Win9X采用的直接讀取引導(dǎo)扇區(qū)的方式來(lái)啟動(dòng)系統(tǒng),而WinNT是通過(guò)NTLDR和NTDETECT.COM來(lái)啟動(dòng)系統(tǒng)的。這也是為什么Win9X害怕引導(dǎo)區(qū)計(jì)算機(jī)病毒的原因之一。需要說(shuō)明的是,在WinNT架構(gòu)的啟動(dòng)進(jìn)程中,有一個(gè)文件也是需要注意的,這個(gè)文件就是經(jīng)常被大家掛在嘴邊的BOOT.INI文件。由于這個(gè)文件的重要性被過(guò)度強(qiáng)化,給大家造成了這個(gè)文件是無(wú)所不能的一種錯(cuò)誤的印象,也就出現(xiàn)了一些“經(jīng)典”的錯(cuò)誤。例如“備份雙系統(tǒng)啟動(dòng)文件只需要備份C盤根目錄下得BOOT.INI文件就可以了”。其實(shí)不然,在某些情況下,只備份這個(gè)文件是不能夠解決問(wèn)題的。詳細(xì)的解釋請(qǐng)看后面的說(shuō)明。
一、最重要的五個(gè)文件
本文將分析在多重啟動(dòng)系統(tǒng)中起重要作用的文件,它們分別是以下幾個(gè):BOOT.INI、BOOTFONT.BIN、BOOTSECT.DOS、NTDETECT.COM、NTLDR。其中BOOT.INI是大家非常熟悉的一個(gè)配置文件。從這個(gè)文件可以選擇啟動(dòng)的操作系統(tǒng)是什么?而且還可以通過(guò)修改BOOT.INI文件控制啟動(dòng)的方式,如在操作系統(tǒng)說(shuō)明符后面加上“/fastdetect”參數(shù),可以使用快速自檢模式。同樣,還有“/nodetect”等參數(shù)可供使用。但是,不是說(shuō)沒(méi)有這個(gè)文件就不能夠啟動(dòng)你的操作系統(tǒng),丟失這個(gè)文件的后果就是只能從C盤啟動(dòng)。同時(shí),由于這個(gè)文件是完完全全的一個(gè)文本類型的文件,我們可以使用任何文本編輯工具編輯這個(gè)文件。換句話說(shuō),BOOT.INI在多重啟動(dòng)系統(tǒng)中不是最重要的一個(gè)文件,也就說(shuō)不上“備份雙系統(tǒng)啟動(dòng)文件只要備份C盤根目錄下的BOOT.INI文件就可以了”。
熟悉多重啟動(dòng)系統(tǒng)啟動(dòng)模式的朋友們都知道,操作系統(tǒng)的啟動(dòng)流程從NTLDR開(kāi)始。NTLDR通過(guò)讀取BOOT.INI文件,確定操作系統(tǒng)啟動(dòng)分區(qū)的位置。對(duì)于只有一個(gè)操作系統(tǒng)的電腦,NTLDR啟動(dòng)NTDETECT.COM開(kāi)始下一步的啟動(dòng)流程,而對(duì)于含有多重啟動(dòng)操作系統(tǒng)的電腦,NTLDR將把BOOT.INI的選擇菜單內(nèi)容顯示在屏幕上供使用者選擇。可見(jiàn),NTLDR是決定多重啟動(dòng)系統(tǒng)的關(guān)鍵性文件。而常見(jiàn)的啟動(dòng)出錯(cuò)提示也是:“NTLDR is missing.”。那么其他的文件又有什么用處呢?
NTDETECT.COM是一個(gè)用于對(duì)硬件設(shè)備初始化的一個(gè)系統(tǒng)級(jí)別的文件,然后把這些硬件信息傳遞給下一個(gè)啟動(dòng)步驟,最終完成操作系統(tǒng)的啟動(dòng)。需要說(shuō)明的是,這個(gè)文件僅存于NT架構(gòu)的操作系統(tǒng)里面,而在Win9X下的啟動(dòng)流程又是另外的一種方式。
以上3個(gè)文件的重要性已經(jīng)為不少讀者有所了解,但是下面這個(gè)文件的重要性恐怕很少有人知道了。這個(gè)文件就是在多重啟動(dòng)中啟動(dòng)Win9X操作系統(tǒng)的一個(gè)非常關(guān)鍵的文件:BOOTSECT.DOS。從名字上是看不出這個(gè)文件有什么特殊的用途的,但是如果你的多重啟動(dòng)操作系統(tǒng)組合里面含有Win9X,那么你一定可以在C盤根目錄發(fā)現(xiàn)這個(gè)文件。這個(gè)文件不大,只有512字節(jié)。其實(shí)這個(gè)文件里面存放的就是大家非常熟悉的啟動(dòng)扇區(qū)里面的全部數(shù)據(jù)。那這個(gè)文件是如何產(chǎn)生的呢?當(dāng)NTLDR被安裝的時(shí)候,安裝程序自動(dòng)地將原先的啟動(dòng)扇區(qū)保存為BOOTSECT.DOS文件,然后使用新的啟動(dòng)數(shù)據(jù)覆蓋這個(gè)扇區(qū)。當(dāng)這個(gè)文件丟失的時(shí)候,你再選擇啟動(dòng)Win9X時(shí),你看到的不再是熟悉的藍(lán)天白云的啟動(dòng)畫面,而是屏幕上的一串英文提示,翻譯過(guò)來(lái)的大意就是I/O錯(cuò)誤,系統(tǒng)無(wú)法啟動(dòng)。為什么會(huì)這樣?因?yàn)镹TLDR從你的選擇中得知你將啟動(dòng)Win9X系統(tǒng),然后去讀取BOOTSECT.DOS文件以開(kāi)始Win9X啟動(dòng)流程,但是由于BOOTSECT.DOS文件不存在,所以啟動(dòng)過(guò)程當(dāng)然會(huì)失敗了。
另外一個(gè)比較重要的文件就是BOOTFONT.BIN。這個(gè)文件實(shí)際上就是一個(gè)中文字體庫(kù),用于在啟動(dòng)的時(shí)候有中文顯示。否則你看到的只有滿屏的英文提示。
以上5個(gè)文件全部位于C盤根目錄下,而且都具有一定的屬性,例如隱藏、系統(tǒng)、只讀等。察看、修改這些文件需要先取消這些特別屬性,否則你的操作將不能夠進(jìn)行。
二、需要注意的問(wèn)題
NTLDR、NTDETECT.COM兩個(gè)文件具有向下兼容性,但是不具有向上兼容性,也就是說(shuō)你可以使用Windows XP的這兩個(gè)文件啟動(dòng)Windows 2000,但是卻不能夠啟動(dòng)Windows Server 2003,這也解釋了為什么很多朋友在已經(jīng)安裝有Windows XP的電腦上安裝Windows 2000以后啟動(dòng)Windows XP失敗的原因。解決方法其實(shí)很簡(jiǎn)單:從Windows XP安裝光盤里面取出這兩個(gè)文件覆蓋C盤根目錄上的同名文件即可。還有就是那個(gè)容易被大家忽略的BOOTSECT.DOS文件,一旦這個(gè)文件丟失或損壞,當(dāng)然是不能夠啟動(dòng)Win9X了。解決方法也很簡(jiǎn)單:插入一張Win9X啟動(dòng)盤,執(zhí)行SYS C:命令,然后重新啟動(dòng),這個(gè)時(shí)候Win9X的啟動(dòng)已經(jīng)恢復(fù),只要重新運(yùn)行WinNT安裝光盤,選擇修復(fù)即可恢復(fù)多重啟動(dòng)的選擇啟動(dòng)模式。