98/ME和2000/XP雙系統的安裝和啟動原理
先來說說MBR(主引導扇區)和系統引導扇區:
主引導扇區位於硬盤的首部,負責搜索硬盤可以啟動的分區,對於DOS來說,它是由Fdisk生成的;而系統引導扇區位於每個分區的首部,用來引導本分區相應的操作系統,它是由sys命令負責的。
其次來說說系統的啟動:
一般來說,Win98的啟動是由5個文件負責的:io.sys,msdos.sys,command.com,autoexec.bat和config.sys。
而Win2000和WinXP的啟動是由Ntldr和Ntdetect兩個文件負責。
Win98和Win2000/WinXP雙系統啟動的時候就比較復雜,是由OS Loaer來引導啟動,用戶可以選擇啟動哪個系統,若用戶選擇了啟動Win2000/WinXP,那麼就裝載Ntldr和Ntdetect兩個文件啟動到Win2000/WinXP下;如果用戶選擇啟動Win98,那麼就裝載Bootsect.dos這個文件,Bootsect.dos文件其實就是Win98引導扇區的鏡像。
這裡順便說一句:Win2000和WinXP裡都有 Ntldr和Ntdetect兩個文件,但是卻是不同的,如果你的雙系統裡缺少這兩個文件,你可以從Win2000或WinXP安裝盤裡的I386目錄下拷貝。如果是Win2000的話,可以采用Win2000或WinXP的都行;如果是WinXP的話,必須采用WinXP光盤裡的,用Win2000盤裡的這兩個文件是不能引導WinXP的,這一點在安裝包含Win2000和WinXP在內的多系統裡表現得尤為明顯,比如你重裝了Win2000以後,照樣無法啟動WinXP,原因就是你用Win2000的Ntldr和Ntdetec這兩個文件覆蓋了WinXP的Ntldr和Ntdetec這兩個文件。因此一定要注意!
再次來說說Windows的多操作系統引導管理工具:OS Loader。每一種多操作系統引導管理工具都有所不同,比如BootMagic和System Commander是常駐於MBR的;而OS Loader
則是常駐於系統引導扇區的;而Linux的多系統引導工具LILO或GRUB既可位於MBR,也可位於系統引導扇區。
以上是一些理論知識,既然都說清楚了,下面進入理論分析階段,看看格式化C盤重新安裝Win98後,為什麼不能雙啟動了:
其實原因很簡單,當你把C盤重新安裝Win98後,你的C盤中比以前少了四個文件,分別是:Ntldr, Ntdetec,Bootsect.dos和boot.ini(多系統啟動的配置文件)。但是在重裝之前僅僅備份這四個文件,重裝之後再拷貝回來,同樣是不能實現雙啟動的!原因在於你的C盤的系統引導扇區已經被Win98給覆蓋了:它將以前的由OS Loader控制的系統引導扇區變成了Win98的系統引導扇區,因此盡管你拷貝回了那四個文件,因為引導扇區依然沒有恢復成雙啟動時的樣子,所以你依然不能實現雙啟動。
知道了原因,解決起來才有了思路和目標。那就是想辦法恢復系統引導扇區。方法有好幾種,
方法一:
可以在重裝Win98之前備份系統引導扇區,需要用到DEBUG命令!
備份命令為:
a:>debug
-L 100 2 0 1
-na:OSLoader.REC
-rcx
CX:0000
:200
-rbx
BX:0000
:0
-w
-q
這時軟盤上生成的OSLoader.REC文件就是OS Loader引導扇區的備份,如果不小心刪除了Bootsect.dos文件,可用類似的方法生成該文件,只需把第三行的保存文件的名稱改為Bootsect.dos即可。
只要把以上生成的OSLoader.REC文件重新寫如硬盤引導扇區就可以恢復OS Loader的引導功能。命令為:
A:>debug
-Na: Bootsect.dos
-L
-w100 2 0 1
-q
OS Lode菜單修復以後,如果C盤缺少Bootsect.dos文件,可以將上述生成的Bootsect.dos文件拷貝到C盤下(注意:不同機器上生成的Bootsect.dos文件不能通用)。
方法二:
用Win2000或WinXP的故障控制台來恢復引導扇區:
進入故障控制台,輸入:
Fixboot c:
Exit
重起計算機即可。
當然,這兩種方法都是在提前備份並恢復了以上四個文件的前提下才能成功實現找回雙啟動功能的,如果事先沒有備份這幾個文件,就比較麻煩了,簡單一點的方法是用Win2000或WinXP安裝盤修復的辦法,也就是假安裝的辦法;麻煩一點的辦法是從Win2000和WinXP的安裝盤裡先拷貝出Ntldr和Ntdetect兩個文件,在用DEBUG命令生成Bootsect.dos文件,然後用Win2000或WinXP的安裝盤進入故障控制台,生成Boot.ini文件(當然,如果對該文件的語法十分熟悉的話,就像我師傅那樣當然也可以在Win98下用記事本自己根據機器的配置編寫一個Boot.ini文件),然後再在故障控制台裡修復引導扇區,重起,大功告成!