MBR、主引導扇區,主分區、擴展分區、邏輯分區,活動分區、引導分區、系統分區、啓動分區的區別詳解

原文地址http://d.download.csdn.net/down/1656050/moshiate

        

    什麼是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加電自檢,一切正常後,找到第一個啓動設備(一般就是硬盤),然後從這個啓動設備的主引導扇區讀取MBRMBR這段引導程序識別活動分區,引導操作系統。

 

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

        正如前面所講,主分區是由主引導扇區中64字節的分區表所定義的,最多隻能有4個。但爲了滿足更多分區的需求,變產生了擴展分區。形式上,如果擁有擴展分區,就必須犧牲一個主分區,而且最多有一個擴展分區,也就是說:主分區+擴展分區<=4 and 擴展分區<=1。因此擴展分區也可以看成一種特殊的主分區。

        但擴展分區並不可以直接使用,擴展分區又必須以邏輯分區的形式出現,可以這樣認爲:擴展分區包含着若干邏輯分區,而且至少包含一個。

        擴展分區中的邏輯分區是以鏈式存在的。即每一個邏輯分區都記錄着下一個邏輯分區的位置信息,依次串聯。事實上每一個邏輯分區都有一個和主引導扇區類似的引導扇區,引導扇區裏有類似的分區表。該分區表記錄了該分區的信息和一個指針,指向下一個邏輯分區的引導扇區。

        因此,邏輯分區是借鑑了主分區的方法,相當於在一個主分區下面建立了若干級“主分區”。從上面的描述,貓貓推測,邏輯分區是建立在操作系統級別,由操作系統識別的。另一個可以預測的現象是:一旦某一個邏輯分區損害,跟在它後面的所有邏輯分區都將丟失,而前面的邏輯分區去可以保留。這也是鏈式結果的特點。

 

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

        這四個術語和前面三個不同,前面三個是講述分區的“物理”形成。而這四個術語描述了分區的功能,並且更易混淆。

        首先,根據Windows XP隨機幫助文檔看,引導分區就是啓動分區,兩者是同一概念,所以下面就只討論活動分區、系統分區和啓動分區。

  • 系統分區和啓動分區比較

        這是兩個極易混淆的概念,因爲兩者的含義似乎和它們的名字正好顛倒了。Windows幫助文件的術語表裏是這樣解釋他們的:”系統分區,包含加載 Windows(例如,NtldrOsloaderBoot.iniNtdetect.com)所需的硬件特定文件的分區。系統分區可以(但不是必須)與啓動分區相同。啓動分區,包含 Windows 操作系統及其支持文件的分區。啓動分區可以(但不是必須)與系統分區相同。“

        看起來是很糊塗,但說的簡單些就是:系統分區包含NtldrOsloaderBoot.iniNtdetect.com等文件,而啓動分區包含Windowssystem32文件。所以,真正包含操作系統內核文件的分區是啓動分區,包含操作系統引導文件的確實系統分區,這是要特別注意的一點。

        有些人就疑問了,我的NtldrOsloaderBoot.iniNtdetect.comWindowssystem32文件都在C盤,那是怎麼回事?這很容易解釋,你的C盤既是系統分區也是啓動分區,只安裝一個操作系統的計算機大都屬於這種情況 ,所以微軟在括號裏說“但不是必須”。

        其實系統分區時針對引導來說的,而啓動分區時針對操作系統來說的。像我的電腦C盤先安裝了Vista,後來D盤安裝了XP,現在C盤是系統分區;至於哪個是啓動分區,就要看我用那個系統了,進VistaC盤就是啓動分區,進XPD盤就是啓動分區。(再強調,啓動分區包含Windows內核文件,而系統分區才包含操作系統引導文件,不然會越看越糊塗的。)

  • 最後要搞明白的是活動分區,這一點,比較麻煩。

        Windows幫助文檔裏的定義是:”活動分區,基於 x86 計算機的啓動分區。活動分區必須是基本磁盤上的主要分區。如果只使用 Windows,則活動分區可以與系統卷相同。“補充說明有:活動分區必須是主分區,一塊硬盤上只可以有一個活動分區。其他主分區可以被標記爲活動分區。

        而從主引導扇區處看,活動分區僅僅是在分區表中,16個字節的最前面含有80標誌的分區信息所定義的分區。

        但貓貓對Windows幫助文檔的定義不敢苟同(也許是我錯了,但是我思來想去,只有這樣可以解釋通)。首先,我們知道活動分區是通過主引導扇區的分區表標記的,所以理論上,每個主分區都可以被標記爲活動(只是不當的標記會導致系統無法啓動)。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的新式引導方式,恢復xpboot.ini式引導方式(此時,CVista已無法引導),發現分別修改C盤和D盤的boot.ini,只有C盤的boot.ini纔有效。再次印證了我的假設。

 

        另外,如果兩個系統都安裝在主分區,則可以通過標記各自的安裝分區爲活動分區,而啓動不同的操作系統。

 

參考資料:

  1. Linux引導過程內幕:http://www.ibm.com/developerworks/cn/linux/l-linuxboot/
  2. 維基百科-主引導扇區:http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA
  3. 硬盤主引導記錄詳解(彙編代碼詳解):http://www.cnblogs.com/woodfish1988/archive/2007/11/25/971482.html
  4. Windows XP隨機幫助文檔(Windows幫助文檔是一個很好的東西,有些人優化系統竟然把它刪了,真是太不應該了。
  5. 呵呵,本文地址,貓貓的園地:http://blog.mm-share.cn/post/Partition-Comparison.html

        寫了這麼多,希望對大家有所幫助。若有不足之處,望方家指正!另外,還有基本磁盤、動態磁盤,卷和分區的區別等待問題,還要進一步研究。

 

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