Legacy和UEFI,MBR和GPT的區別

2021-09-29 09:58:09 字數 3287 閱讀 9802

legacy和uefi指的是系統引導方式(legacy為傳統bios,uefi為新式bios),mbr和gpt指的是磁碟分割槽表型別。

一般情況下都是legacy+mbr, uefi+gpt這兩種組合。但legacy+gpt,uefi+mbr也可以實現。

在uefi模式下啟動,啟動的是efi驅動和應用程式,而且只要系統一啟動,就直接是64位的了。(少數二合一平板32位的uefi韌體忽略不計)

那麼如果選擇uefi模式啟動,所有的16位的ms-dos實用程式,dos工具包和其它的維護工具以及32位的應用程式都是無法載入和啟動的。uefi必須安裝使用64位系統!

所以在uefi模式下,我們不能引導32位的系統。

但是呢,在legacy模式下呢,16位的dos工具包、32位的程式和系統、64位的都可以ok。

本文只討論原生uefi和原生bios。

至於帶有csm相容模組的uefi本身就是uefi+bios的結合體,自然全相容沒話說。

至於分割槽表,接下來慢慢說這個事。

硬碟乙個邏輯扇區有512個位元組,硬碟的第乙個扇區,也就是0磁軌0柱面1扇區,也就是邏輯扇區0,這個扇區就叫做主引導記錄,叫mbr(master boot record)翻譯成中文就叫(明(m)白(b)人(r)),就是你得弄明白了。

mbr記錄了整塊磁碟的重要資訊,是計算機開機後訪問磁碟時所必須要讀取的首個扇區。主要有三個部分:

主引導分割槽(master boot record,mbr):主要作用是檢查分割槽表是否正確,並且在系統硬體完成自檢以後將控制權交給磁碟上的引導程式(如gnu,grub)

分割槽表(partition table):佔據64個位元組,可以對四個分割槽的資訊進行描述,其中每個分割槽的資訊佔據16個位元組

結束標誌字:0x55aa,最後兩個位元組,是檢驗主引導記錄是否有效的標誌

注:mbr有兩個意思,根據語境確定指的是第乙個扇區還是主引導分割槽。

下面這個圖就是主引導記錄:

引導程式後面4個位元組 1b8-1bb 代表windows磁碟簽名

1be-1fd 64個位元組是硬碟分割槽表dpt(disk partition table)

最後的兩個位元組 1fe-1ff (即55 aa )是mbr的結束標誌。

明白為什麼mbr分割槽表最多為什麼只能有4個主分割槽了吧?

因為每個分割槽資訊需要16個位元組,所以對於採用mbr型分割槽結構的磁碟,最多只能識別4個主(primary)或擴充套件(extend)分割槽。擴充套件分割槽也是主要分割槽的一種,但它與主分割槽的不同在於理論上可以劃分為無數個邏輯分割槽。

磁碟中最多可以有4個primary和extended的扇區,而extended只能有乙個,如果要把磁碟分割槽成四個分割槽,那麼只能是:

p+p+p+p或者p+p+p+e上面的情況中, 3p+e只有三個主分割槽可用,因為extended不能被格式化作為資料訪問的分割槽,還需要進一步分割槽成邏輯分割槽。如果要四個都可用,就需要分割槽成4p

擴充套件分割槽中邏輯驅動器的引導記錄是鏈式的。每乙個邏輯分割槽都有乙個和mbr結構類似的擴充套件引導記錄(ebr),其分割槽表的第一項指向該邏輯分割槽本身的引導扇區,第二項指向下乙個邏輯驅動器的ebr,分割槽表第

三、第四項沒有用到

需要注意的問題:

主分割槽和擴充套件分割槽最多只有四個

擴充套件分割槽最多只能有乙個

邏輯分割槽是由擴充套件分割槽持續切割出來的分割槽

只有主分割槽和邏輯分割槽才能被格式化作為資料訪問的分割槽

linux系統預設將前4個序號作為主分割槽或擴充套件分割槽,而邏輯分割槽的序號肯定從5開始

下圖來自inside the linux boot process,較為清晰的畫出了mbr中各個部分的結構

gpt分割槽表位於磁碟的邏輯扇區第2-33號扇區,一共占用32個扇區,能夠容納128 (4*32)個分割槽表項。每個分割槽表項大小為128位元組,所以windows系統允許gpt磁碟建立128個主分割槽。

分割槽表項中記錄著分割槽的起始,結束位址,分割槽型別的guid,分割槽的名字,分割槽屬性和分割槽guid。

所以說除了mbr之外首尾還各需要33個扇區。手動分割槽的時候要特別注意尾部留空。

gpt分割槽的第1個扇區,也就是扇區0。

發現什麼了?

gpt也有乙個類似於mbr的東西,只不過引導記錄是空的,windows磁碟簽名有,而且分割槽表也有,只不過分割槽格式被定義為了ee,因為這個格式不存在,所以老舊的磁碟分割槽工具開啟這個磁碟就會發現無法識別這個磁碟的格式,進而不會對磁碟進行分割槽操作。

看到這裡,我們就已經明白了,所以說其實分割槽表也就是那麼回事,gpt和mbr只不過是兩種分配硬碟資料的方式而已。

gpt分割槽的0扇區可以寫入主引導記錄,也可以寫入分割槽表,只不過需要手動換算一下。

所以傳統legacy bios啟動gpt的分割槽是完全可行的。

而uefi呢,本身就是讀取硬碟的第乙個fat32分割槽的\efi\boot\bootx64.efi檔案來引導系統的,那麼無論分割槽格式是mbr還是gpt,都不會影響uefi的正常引導。

這就是我們能夠成功讓傳統bios啟動gpt磁碟的作業系統;讓uefi啟動mbr磁碟的作業系統的理論基礎。

下面先說說uefi啟動mbr吧,首先mbr分割槽表一定要有乙個fat32分割槽,是不是活動分割槽無所謂,因為uefi沒有活動分割槽的說法。

只要手動修復一下fat32分割槽的bcd檔案就行了,用bootice工具編輯一下就ok了。

如果遇到下圖的錯誤,就是bcd的問題:

只要修復一下bcd就行了。下圖就是uefi的bios啟動的mbr的磁碟

這個很簡單,就不在囉嗦了

UEFI和Legacy是什麼意思?

legacy就是以傳統bios啟動,可以進行mbr分割槽的系統安裝,但是gpt分割槽必須uefi啟動。所以一般出廠帶win8的機器一般是uefi啟動的硬碟分割槽格式也是gpt的,如果需要安裝xp之類的非uefi啟動的系統必須選legacy。64位的win7是可以uefi安裝的所以不必選legacy。...

關於啟動模式legacy和UEFI的區別

uefi 新模式,其啟動順序 開機 uefi初始化 引導作業系統 進入作業系統啟動。速度相對 lagacy模式要更快。uefi只支援64位的作業系統,uefi模式下的系統會有兩個很小的分割槽,乙個叫esp efi系統分割槽 另乙個msr 微軟保留分割槽,通常為128mb msr是視窗要求的分割槽.e...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...