MBR、主分區、擴展分區、邏輯分區、活動分區、系統分區、啓動分區講解

什麼是MBR和主引導引導扇區?什麼是主分區、擴展分區、邏輯分區?什麼是活動分區、引導分區、系統分區、啓動分區?一下子羅列這麼多概念,恐怕很多人都搞不清它們的區別和聯繫吧。網上雖然不少解釋,但很多是模棱兩可甚至是錯誤的,反而越弄越糊塗。貓貓煞費苦心的把這一大串概念研究了很長時間,試圖搞明白,爲了以後查閱方便,於是把對這些概念的理解總結了一下。而要想分清這些概念,真要費一點腦筋啊!

一、MBR和主引導扇區

首先簡要介紹MBR和主引導扇區的關係。
主引導扇區是硬盤0號柱面,0號磁頭的第一個扇區,大小爲512字節。(注:硬盤可以用柱面、磁頭和扇區定位) MBR,佔用主引導扇區的前446字節,緊隨其後的64字節是分區表DPT,最後還剩兩個字節則恆爲55AA,表示結束符號。
然後,具體說一說MBR和分區表。
MBR,全稱爲Master Boot Record,即硬盤的主引導記錄。MBR,共446字節,一般在操作系統安裝時寫入,但它並不屬於操作系統。MBR就是一段引導程序,用於檢測磁盤的分區合法性和加載操作系統,它的重要作用就是識別活動分區,並引導操作系統。 分區表DPT,共64字節,記錄了硬盤有多少分區以及分區的各種屬性。由於一個分區的信息要佔用16字節,所以分區表只能定義4個分區,這就是爲什麼我們說硬盤一般最多隻能分爲4個主分區(這裏說“一般”是對基本磁盤而言,而對於動態磁盤則無此限制,但大部分都在使用基本磁盤,可以暫不考慮 )。 計算機開機後BIOS加電自檢,一切正常後,找到第一個啓動設備(一般就是硬盤),然後從這個啓動設備的主引導扇區讀取MBR。MBR這段引導程序識別活動分區,引導操作系統。

二、主分區、擴展分區、邏輯分區

正如前面所講,主分區是由主引導扇區中64字節的分區表所定義的,最多只能有4個。但爲了滿足更多分區的需求,變產生了擴展分區。形式上,如果擁有擴展分區,就必須犧牲一個主分區,而且最多有一個擴展分區,也就是說:主分區+擴展分區<=4 and 擴展分區<=1。因此擴展分區也可以看成一種特殊的主分區。 但擴展分區並不可以直接使用,擴展分區又必須以邏輯分區的形式出現,可以這樣認爲:擴展分區包含着若干邏輯分區,而且至少包含一個。 擴展分區中的邏輯分區是以鏈式存在的。即每一個邏輯分區都記錄着下一個邏輯分區的位置信息,依次串聯。事實上每一個邏輯分區都有一個和主引導扇區類似的引導扇區,引導扇區裏有類似的分區表。該分區表記錄了該分區的信息和一個指針,指向下一個邏輯分區的引導扇區。 因此,邏輯分區是借鑑了主分區的方法,相當於在一個主分區下面建立了若干級“主分區”。從上面的描述,貓貓推測,邏輯分區是建立在操作系統級別,由操作系統識別的。另一個可以預測的現象是:一旦某一個邏輯分區損害,跟在它後面的所有邏輯分區都將丟失,而前面的邏輯分區去可以保留。這也是鏈式結果的特點。

三、活動分區、系統分區、啓動分區、引導分區

這四個術語和前面三個不同,前面三個是講述分區的“物理”形成。而這四個術語描述了分區的功能,並且更易混淆。
首先,根據Windows XP隨機幫助文檔看,引導分區就是啓動分區,兩者是同一概念,所以下面就只討論活動分區、系統分區和啓動分區。 系統分區和啓動分區比較。 這是兩個極易混淆的概念,因爲兩者的含義似乎和它們的名字正好顛倒了。

Windows幫助文件的術語表裏是這樣解釋他們的:“系統分區,包含加載 Windows(例如,Ntldr、Osloader、Boot.ini、Ntdetect.com)所需的硬件特定文件的分區。系統分區可以(但不是必須)與啓動分區相同。啓動分區,包含 Windows 操作系統及其支持文件的分區。啓動分區可以(但不是必須)與系統分區相同。

看起來是很糊塗,但說的簡單些就是:系統分區包含Ntldr、Osloader、Boot.ini、Ntdetect.com等文件,而啓動分區包含Windows和system32文件

所以,真正包含操作系統內核文件的分區是啓動分區,包含操作系統引導文件的確實系統分區,這是要特別注意的一點。

有些人就疑問了,我的Ntldr、Osloader、Boot.ini、Ntdetect.com和Windows、system32文件都在C盤,那是怎麼回事?這很容易解釋,你的C盤既是系統分區也是啓動分區,只安裝一個操作系統的計算機大都屬於這種情況 ,所以微軟在括號裏說“但不是必須”。 其實系統分區時針對引導來說的,而啓動分區時針對操作系統來說的。像我的電腦C盤先安裝了Vista,後來D盤安裝了XP,現在C盤是系統分區;至於哪個是啓動分區,就要看我用那個系統了,進Vista,C盤就是啓動分區,進XP,D盤就是啓動分區。(再強調,啓動分區包含Windows內核文件,而系統分區才包含操作系統引導文件,不然會越看越糊塗的。)

最後要搞明白的是活動分區,這一點,比較麻煩。 Windows幫助文檔裏的定義是:“活動分區,基於 x86 計算機的啓動分區。活動分區必須是基本磁盤上的主要分區。如果只使用 Windows,則活動分區可以與系統卷相同。

補充說明有:
1、活動分區必須是主分區;
2、一塊硬盤上只可以有一個活動分區;
3、其他主分區可以被標記爲活動分區。
4、而從主引導扇區處看,活動分區僅僅是在分區表中,16個字節的最前面含有80標誌的分區信息所定義的分區。 但貓貓對Windows幫助文檔的定義不敢苟同(也許是我錯了,但是我思來想去,只有這樣可以解釋通)。

PS.戴有煒《Windows Server 2003 用戶管理指南》P345中提到:“當計算機啓動施,磁盤內的MBR會讀取“活動磁盤分區”內的引導扇區,並將控制權交給引導扇區,以後由引導扇區負責啓動合適的操作系統”。(我覺得此處的引導扇區應該是活動磁盤中的分區引導扇區(BPB))P346中提到:“如果要在開機時啓動Windows Server 2003,則必須將其“系統卷”設爲“活動的”,而不是“引導卷”。”
——Matthew添加筆記

首先,我們知道活動分區是通過主引導扇區的分區表標記的,所以理論上,每個主分區都可以被標記爲活動(只是不當的標記會導致系統無法啓動)。Windows幫助文檔說活動分區,是基於x86的計算機的啓動分區,那不就是說是Windows文件所在分區。可是對於雙系統來說,這種說法顯然不對,因爲雙系統的啓動分區是依據被啓動的系統而定的。所以,我假定微軟也把系統分區和啓動分區的概念搞混淆了。
所以,結果變爲,活動分區是基於x86計算機的系統分區。換句話說,活動分區是一種系統分區。在這種情況下,一個主分區是不是系統分區似乎並不具有價值,只有被標記爲活動的主分區才有價值。因爲,只有標記爲活動分區,這個系統分區的Windows啓動支持文件纔會被加載,然後通過這些引導存儲在啓動分區的Windows內核文件,完全Windows的啓動。 所以,Windows可以被安裝在邏輯分區內(我發現我的電腦就是這樣的),但必須在活動分區的啓動支持文件里加上對這個邏輯分區裏Windows的引導信息。具體到XP,就是boot.ini文件添加上對雙系統的引導,而這個boot,ini文件必須在啓動分區。而我了一個實驗,在XP下面通過啓動和故障恢復對話框修改boot.ini文件,發現修改的並非XP所在的分區的boot.ini,而是Vista所在分區的boot.ini。(我在主分區C盤安裝了Vista,邏輯分區D盤安裝了XP)。同時,我通過軟件廢除Vista的新式引導方式,恢復xp的boot.ini式引導方式(此時,C盤Vista已無法引導),發現分別修改C盤和D盤的boot.ini,只有C盤的boot.ini纔有效。再次印證了我的假設。 另外,如果兩個系統都安裝在主分區,則可以通過標記各自的安裝分區爲活動分區,而啓動不同的操作系統。
參考資料:
Linux引導過程內幕:
http://www.ibm.com/developerworks/cn/linux/l-linuxboot/

維基百科-主引導扇區:
http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA

硬盤主引導記錄詳解(彙編代碼詳解):
http://www.cnblogs.com/woodfish1988/archive/2007/11/25/971482.html
Windows XP隨機幫助文檔

引用自:貓貓的園地:http://blog.mm-share.cn/post/Partition-Comparison.html
寫了這麼多,希望對大家有所幫助。若有不足之處,望方家指正!另外,還有基本磁盤、動態磁盤,卷和分區的區別等待問題,還要進一步研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章