查看單個文章
舊 2006-03-03, 03:48 PM   #2 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

多系統的安裝和啟動原理

先來說說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文件),然後再在故障控制台裡修復啟始扇區,重新啟動,大功告成!


解讀boot.ini

boot.ini,就是windows系統的啟始程序。從NT開始,微軟就已經開始使用這個文件了。使用它我們可以輕鬆對電腦中的多系統進行啟始,還可以通過該啟始文件,設定個性化的啟動表單。好比一台可以設定燒烤程式的微波爐,雖然它具的功能很強大,但還是需要指定將要燒烤的是魚還是牛肉.(自己先汗一個,我是家庭主婦,只能舉這樣的例子).只有指定了一定的功能,才能完美地執行下一步.
  一.開啟方式。
  開啟boot.ini文件的方法有很多,總結起來以下幾個比較常用:
  ⒈開始/執行/c:\boot.ini,Enter鍵。系統會自動用記事本開啟文件。
  ⒉開始/執行/msconfig,Enter鍵。系統開啟系統組態實用程序,其中就有boot.ini的選擇項。在這裡編輯boot.ini文件當然也是很輕鬆的啦。
  ⒊直接開啟資料夾去找。當然這是一個笨辦法,而且由於boot.ini文件預設是只讀和隱藏的,找之前必須在資料夾選項中選項顯示所有文件。或者直接用Windows的尋找功能直接定位。
  二.Boot.ini文件的用處。
  對於單系統用戶來說,修改boot.ini文件最大的用處就是可以給系統啟動提速。
  在boot.ini文件中,有一句[boot loader] timeout=30。這一句就表示系統啟動啟始表單後在設定的延遲時間內用戶沒有進行任何操作時,進入預設的操作系統。這個預設值是可以修改的,最小值可以定義為1。注意,1才是真正的最小值,如果想當然地設定為0,則系統會無限等待,直到用戶選定為止。
  實際上,boot.ini文件的真正用途還是套用在多系統用戶的系統啟動上。以下面的boot.ini文件為例:
  [boot loader]
  timeout=30
  default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
  [operating systems]
  multi(X)disk(Y)rdisk(Z)partition(Q)\WINDOWS=「Microsoft Windows XP Professional「 /fastdetect
  SCSI(X)disk(Y)rdisk(Z)partition(Q)\WIN98=「Microsoft Windows 98「 /fastdetect
  前面已經介紹過第一句的用法,這裡不再贅述。那麼其他的語句又是什麼含義呢?
  default=xxxx表示預設情況下系統預設要載入的操作系統路徑,表現為啟動時等待用戶選項的高亮條部分。但那些「multi(0)disk(0)rdisk(0)partition(1)」是什麼意思呢?
  實際上這是根據ARC規則命名的,它是x86或RISC電腦中用於標幟設備的一種通用方法。ARC名字指向存放操作系統檔案的分區,對於磁牒設備, ARC名字的構成如下:
  (X)disk(Y)rdisk(Z)partition(Q)
  component部分有兩種有效值,即multi和SCSI,它用於標明硬體橋接器。multi表示一個非SCSI硬碟或一個由SCSI BIOS訪問的SCSI硬碟,而SCSI則表示一個SCSI BIOS禁止的SCSI硬碟。X值表示操作系統的系統根目錄所在的分區所在的硬碟所在的磁牒控制器在同一磁牒控制器上的序號(X從0開始)。
  disk(Y):對於SCSI硬碟來說,Y值表示操作系統的系統根目錄所在的分區所在的硬碟在同一個磁牒控制器上的硬碟序號(Y從0開始);對於multi來說,Y值無任何意義,恆為0。
  rdisk(Z):對於multi來說,Z值表示操作系統的系統根目錄所在的分區所在的硬碟在同一個磁牒控制器上的硬碟序號(Z從0開始);對於SCSI硬碟來說,Z值無意義,恆為0。
  partition(Q):Q值表示操作系統的系統根目錄所在的分區在同一硬碟上主分區的序號(Q從1開始)。
  Operating systems部分列出了這台電腦上所有操作系統的路徑和清單,其中還包括一些如/fastdetect、/basevideo、/sos之類的開關符。這些開關符都有特殊的含義,一般情況下建議不要更改。例如要格式化C碟、D碟,C碟上安裝了NT Server 4.0且為主活動分區,D碟安裝的是Win 98操作系統,E碟為應用程式分區,F盤安裝的是Win 2000。C、D、E碟均為FAT文件系統,F盤為NTFS文件系統。由於格式化了C碟,其根目錄下的Boot.ini丟失掉,因而有關Win 2000啟動的訊息也隨之丟失掉。如果我們為此而重裝系統,那似乎是令人心煩的和難以忍受的。瞭解了Boot.ini文件,我們就可以在C碟根目錄下找到它,去掉其只讀的內容,然後對其進行編輯。在[operating systems]下加上如下訊息:「multi(x)disk(x)rdisk(x)partition(x)\WINNT=「Microsoft Windows 2000 Professional「 /fastdetect」,具體內容應根據個人電腦硬體的不同組態情況而定,如果電腦的此項組態為「multi(0)disk(0)rdisk(0)partition(5)\WINNT5=「Microsoft Windows 2000 Professional「 /fastdetect」,即表明安裝載入Win 2000的目錄為G:\WINNT5。這樣當開機時我們選項此項,系統就會在這個目錄尋找所需訊息,進行程序載入,從而完成啟動Win 2000的工作。當然,我們直接編輯修改這個文件並不能像重新安裝那樣完美,因為全新安裝時安裝程序修改的不止是這一個文件,所以這種做法可以算是一種建立捷逕吧。如果我們懶得重新安裝,這種方法值得一試。
  
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次