2009年8月2日 星期日

Windows_多重啟動_多重開機_重要檔案講解


================================================
Windows_多重啟動_多重開機_重要檔案講解
by AYO 阿佑

================================================
前言:
原文出處:

作者: 我從山中來
http://tw.group.knowledge.yahoo.com/hacker-cracker/article/view?aid=1214

http://www.it.com.cn/f/edu/066/27/288702.htm

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/

Windows作業系統如果要做 多重開機 或者是 多重啟動的話,
意思是說同時擁有多個作業系統於硬碟裡面,想要開機的時候,
會有一個選單讓您選擇的話,就是這五個檔案最重要了,

它們分別是以下幾個:
BOOT.INI、BOOTFONT.BIN、BOOTSECT.DOS、
NTDETECT.COM、NTLDR

而這五個當中,唯一可以程式化,
意思是說 可以自行撰寫,或者是 看的懂的檔案,
就是 boot.ini 囉!!

AYO阿佑 在這邊寫一個範例給各位了解一下 boot.ini

這是單獨 Windows XP 開機的時候 boot.ini 的內容
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

這是雙系統 Windows XP & Windows 2003 開機的時候 選單 boot.ini 的內容
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows 2003 Server" /noexecute=optin /fastdetect

重點放在雙選單這邊,這邊意思是說,
partition 1 裡面放的是 WinXP,partition 2 裡面放的是 Win2003,
基本上來說 partition 1 預設的是 C:,partition 2 預設是 D:,
所謂的 C: D: 那都是 正常開機完成之後去做定義的,
所以還在開機階段的時候,所謂的 C: D: 那都是無意義的,
所以當然是用 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 來做指定

本篇教學文件,主要是教導,這五個檔案的運作與關係,
而這五個檔當中,
唯一能手動去撰寫更改的只有 boot.ini,
其他的四個
BOOTFONT.BIN、BOOTSECT.DOS、 NTDETECT.COM、NTLDR,
本文當中也有教導如何排除問題,與這些檔案是做什麼的

================================================
參考文獻如下 :

現在安裝多重啟動系統的朋友越來越多了,
但是很少有人能夠完全知道,
在多重啟動系統中的幾個重要檔的作用是什麼。
下面讓筆者簡單地予以介紹,
希望大家以後能關注這些檔,以備不時之需。

由於Windows 95/98/ME(以下簡稱Win9X)和
Windows NT/2000/XP/Server 2003(以下簡稱WinNT)
的引導方式完全不同,所以在多重啟動系統裏面,
微軟採用了一種很巧妙的方式來解決這個問題。
Win9X採用的直接讀取引導磁區的方式來啟動系統,
而WinNT是通過NTLDR和NTDETECT.COM來啟動系統的。
這也是為什麼Win9X害怕引導區電腦病毒的原因之一。
需要說明的是,在WinNT架構的啟動進程中,
有一個檔也是需要注意的,
這個檔就是經常被大家掛在嘴邊的BOOT.INI文件。
由於這個檔的重要性被過度強化,
給大家造成了這個檔是無所不能的一種錯誤的印象,
也就出現了一些“經典”的錯誤。
例如 "備份雙系統啟動檔只需要備份
C盤根目錄下得BOOT.INI檔就可以了"。
其實不然,在某些情況下,只備份這個檔是不能夠解決問題的。
詳細的解釋請看後面的說明。

最重要的五個文件
本文將分析在多重啟動系統中起重要作用的檔,
它們分別是以下幾個:
BOOT.INI、BOOTFONT.BIN、BOOTSECT.DOS、
NTDETECT.COM、NTLDR。
其中BOOT.INI是大家非常熟悉的一個配置檔。
從這個檔可以選擇啟動的作業系統是什麼?
而且還可以通過修改BOOT.INI檔控制啟動的方式,
如在作業系統說明符後面加上“/fastdetect”參數,
可以使用快速自檢模式。
同樣,還有“ /nodetect”等參數可供使用。
但是,不是說沒有這個檔就不能夠啟動你的作業系統,
丟失這個檔的後果就是只能從C盤啟動。
同時,由於這個檔是完完全全的一個文本類型的檔,
我們可以使用任何文本編輯工具編輯這個檔。
換句話說,BOOT.INI在多重啟動系統中不是最重要的一個檔,
也就說不上 "備份雙系統啟動檔只要備份
C盤根目錄下的BOOT.INI檔就可以了"。

熟悉多重啟動系統啟動模式的朋友們都知道,
作業系統的啟動流程從NTLDR開始。
NTLDR通過讀取BOOT.INI檔,確定作業系統啟動分區的位置。
對於只有一個作業系統的電腦,
NTLDR啟動NTDETECT.COM開始下一步的啟動流程,
而對於含有多重啟動作業系統的電腦,
NTLDR 將把BOOT.INI 的選擇功能表內容顯示
在螢幕上供使用者選擇。
可見,NTLDR是決定多重啟動系統的關鍵性檔。
而常見的啟動出錯提示也是:“NTLDR is missing.”。
那麼其他的檔又有什麼用處呢?

NTDETECT.COM是一個用於
對硬體設備初始化的一個系統級別的檔,
然後把這些硬體資訊傳遞給下一個啟動步驟,
最終完成作業系統的啟動。
需要說明的是,這個檔僅存於NT架構的作業系統裏面,
而在Win9X下的啟動流程又是另外的一種方式。

以上3個檔的重要性已經為不少讀者有所瞭解,
但是下面這個檔的重要性恐怕很少有人知道了。
這個檔就是在多重啟動中
啟動Win9X作業系統的一個非常關鍵的檔:BOOTSECT.DOS。
從名字上是看不出這個檔有什麼特殊的用途的,
但是如果你的多重啟動作業系統組合裏面含有Win9X,
那麼你一定可以在C盤根目錄發現這個檔。
這個檔不大,只有512位元組。
其實這個檔裏面存放的就是
大家非常熟悉的啟動磁區裏面的全部資料。
那這個檔是如何產生的呢?當NTLDR被安裝的時候,
安裝程式自動地將原先的啟動磁區保存為BOOTSECT.DOS檔,
然後使用新的啟動資料覆蓋這個磁區。當這個檔丟失的時候,
你再選擇啟動Win9X時,你看到的不再是熟悉的藍天白雲的啟動畫面,
而是螢幕上的一串英文提示,翻譯過來的大意就是I/O錯誤,
系統無法啟動。為什麼會這樣?
因為NTLDR從你的選擇中得知你將啟動Win9X系統,
然後去讀取BOOTSECT.DOS檔以開始Win9X啟動流程,
但是由於BOOTSECT.DOS檔不存在,
所以啟動過程當然會失敗了。

================================================
篇後語:
相信經過這篇教學,
您應該對 Windows 多重開機 多重啟動,
都有一定程度的了解,
下次安裝了雙系統的時候,
也應該知道哪邊可能會有問題,
也知道要如何排除困難了!

================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/



沒有留言:

張貼留言