1. 程式人生 > >硬碟MBR和GPT區別

硬碟MBR和GPT區別

似乎人人都可以張嘴就說“我懂電腦”,但是總有一些看起來完全不懂但實際上非常基礎的東西讓“懂”與“不懂”清晰地劃清界限。比如UEFI+GPT就是其中之一。這篇文章就總結了MBR和GPT區別。

什麼是MBR,什麼是GPT

GPT和MBR是兩種不同的分割槽方案。目前在Windows下廣泛採用的磁碟分割槽方案仍然是MBR分割槽結構,但不容懷疑GPT是今後的趨勢。

MBR磁碟分割槽結構用下圖簡單表示(Windows下基本磁碟、4個主分割槽)

clip_image002

為了方便計算機訪問硬碟,把硬碟上的空間劃分成許許多多的區塊(英文叫sectors,即扇區),然後給每個區塊分配一個地址,稱為邏輯塊地址(即LBA)。
在MBR磁碟的第一個扇區內儲存著啟動程式碼和硬碟分割槽表。啟動程式碼的作用是指引

計算機從活動分割槽引導啟動作業系統(BIOS下啟動作業系統的方式);分割槽表的作用是記錄硬碟的分割槽資訊。在MBR中,分割槽表的大小是固定的,一共可容納4個主分割槽資訊。在MBR分割槽表中邏輯塊地址採用32位二進位制數表示,因此一共可表示2^32(2的32次方)個邏輯塊地址。如果一個扇區大小為512位元組,那麼硬碟最大分割槽容量僅為2TB。

GPT磁碟分割槽結構可用下圖簡單表示(Windows下基本磁碟)

clip_image003

可以看到,在GTP磁碟的第一個資料塊中同樣有一個與MBR(主引導記錄)類似的標記,叫做PMBR。PMBR的作用是,當使用不支援GPT的分割槽工具時,整個硬碟將顯示為一個受保護的分割槽,以防止分割槽表及硬碟資料遭到破壞。UEFI並不從PMBR中獲取GPT磁碟的分割槽資訊,它有自己的分割槽表,即GPT分割槽表。

GPT分割槽表的優勢

GPT的分割槽方案之所以比MBR更先進,是因為在GPT分割槽表頭中可自定義分割槽數量的最大值,也就是說GPT分割槽表的大小不是固定的。在Windows中,微軟設定GPT磁碟最大分割槽數量為128個。另外,GPT分割槽方案中邏輯塊地址(LBA)採用64位二進位制數表示,可以計算一下2^64是一個多麼龐大的資料,以我們的需求來講完全有理由認為這個大小約等於無限。除此之外,GPT分割槽方案在硬碟的末端還有一個備份分割槽表,保證了分割槽資訊不容易丟失。

BIOS引導系統方式(引導Windows

clip_image004

BIOS下啟動作業系統之前,必須從硬碟上指定扇區讀取系統啟動程式碼(包含在MBR主引導記錄中),然後從活動分割槽中引導啟動作業系統,所以在BIOS下引導安裝Windows作業系統,我們不得不使用一些工具(DiskGenius)對硬碟進行配置以達到啟動要求(即建立MBR硬碟主引導和活動分割槽)。

傳統BIOS的過程好像也不算複雜,但是由於BIOS的資源控制採用了中斷向量的方式,所它在擴充套件性方面以及安全性上都不能有所保障。除此之外,有些電腦的BIOS的硬體自檢時間非常長,這個時間大概就是我們的工作管理員顯示的BIOS時間。

因為BIOS無法識別GPT分割槽,所以BIOS下GPT磁碟不能用於啟動作業系統,在作業系統提供支援的情況下可用於資料儲存。

BIOS方式啟動過程看起來很不好,他要不斷交接電腦控制權和讀取引導記錄並嘗試引導,螢幕要閃很多次,還要看一段時間的Windows視窗的載入圖示。

UEFI引導系統方式(引導Windows

clip_image005

UEFI下啟動作業系統,不再需要主引導記錄,不再需要活動分割槽,不需要任何工具,只要複製安裝檔案到一個FAT32(主)分割槽/U盤中,然後從這個分割槽/U盤啟動。

UEFI在開機方面相比BIOS少了自檢這一步,它把硬體資訊存在了硬盤裡,直接讀取,因此它的啟動速度更快;UEFI是BIOS的一種升級替代方案,UEFI之所以比BIOS強大,是因為UEFI本身已經相當於一個微型作業系統,其帶來的便利之處在於:首先,UEFI已具備檔案系統(檔案系統是作業系統組織管理檔案的一種方法,直白點說就是把硬碟上的資料以檔案的形式呈現給使用者。Fat32、NTFS都是常見的檔案系統型別)的支援,它能夠直接讀取FAT分割槽中的檔案;其次,可開發出直接在UEFI下執行的應用程式,這類程式檔案通常以efi結尾。既然UEFI可以直接識別FAT分割槽中的檔案,又有可直接在其中執行的應用程式。那麼完全可以將Windows安裝程式做成efi型別應用程式,然後把它放到任意fat分割槽中直接執行即可,如此一來安裝Windows作業系統這件過去看上去稍微有點複雜的事情突然就變非常簡單了,就像在Windows下開啟QQ一樣簡單。

UEFI可同時識別MBR分割槽和GPT分割槽,因此UEFI下,MBR磁碟和GPT磁碟都可用於啟動作業系統和資料儲存。不過微軟限制,UEFI下使用Windows安裝程式安裝作業系統是隻能將系統安裝在GPT磁碟中。

UEFI方式啟動過程以SSD中啟動WIN10為例,按下電源鍵,過1-2秒,然後出現主機板的標誌,過1-2秒,標誌下出現轉圈的點(表示正在載入Windows,這和BIOS啟動完全不一樣),過5-7S,黑一下,過1-2S,到開機鎖屏介面;中間沒有出現Windows視窗的載入圖示,開機全程給人一種行雲流水的感覺。

UEFI+GPT最好用64位作業系統。

總的來說:

1、GPT能使用大於2.2T的硬碟,MBR不行。支援最大卷為18 EB(1EB=1048576TB)。

2、GPT可以支援無限個分割槽,微軟目前的限定是128個。Linux、ubuntu、macos都能支援這種分割槽格式。MBR最多4個主分割槽,超過4個再分割槽只能通過邏輯分割槽。

3、GPT分割槽磁碟有備份分割槽表來提高分割槽資料結構的完整性。

4、UEFI + GPT 開機啟動更快,開機時跳過外設檢測,並且可以實現啟動時原生解析度,搭載固態硬碟開機時間很短,十秒左右。(沒有開機硬體自檢會稍微快了那麼1、2秒)

5、UEFI + GPT 支援Secure Boot。通過保護預啟動或預引導程序,抵禦bootkit攻擊,從而提高安全性。所有在開機時比Windows核心更早載入,實現核心劫持的技術,都可以稱之為Bootkit。

6、UEFI BIOS 可用滑鼠操作圖形介面,不再是枯燥的藍底白字的英文。(Intel提出,用於取代BIOS)。UEFI的優越特性:可操作性、安全性、相容性、可擴充套件性。

BIOS+MBR的系統引導檔案可以和系統檔案在同一分割槽的根目錄,也可以不與系統檔案同一分割槽,只要系統引導檔案所在分割槽為活動的主分割槽即可啟動作業系統;而UEFI+GPT只能把系統引導檔案放置在ESP分割槽,且作業系統必須在另外的主分割槽,也就是說,UEFI+GPT強制要求系統啟動檔案與系統檔案必須分離,不在同一分割槽。

BIOS+MBR一旦系統安裝好之後,如果系統引導檔案在單獨的分割槽,此分割槽可以在作業系統中可見,也可以設定此分割槽為隱藏,系統都可以正常啟動;而UEFI+GPT系統引導檔案所在的ESP分割槽在作業系統中為不可見,進入系統後自動隱藏。

對比採用傳統BIOS引導啟動方式,UEFI BIOS減少了BIOS自檢的步驟,節省了時間,從而加快平臺的啟動。

----------拓展-------------

BIOS和UEFI、MBR和GPT 搭配情況:

(1)BIOS+MBR:可用,可啟動系統。最常見!這是最傳統的,系統都會支援;唯一的缺點就是不支援容量大於2T的硬碟。

(2)BIOS+GPT:可用,但是無法啟動系統。BIOS是可以使用GPT分割槽表的硬碟來作為資料盤的,但不能引導系統;若電腦同時帶有容量小於2T的硬碟和容量大於2T的硬碟,小於2T的可以用MBR分割槽表安裝系統,而大於2T的可以使用GPT分割槽表來存放資料也沒什麼問題。但系統須使用64位系統。

BIOS+GPT也是合理的模式,但這種模式下無法啟動此硬碟上的系統,而如果只是作為儲存盤,則沒有什麼影響。主硬碟BIOS+MBR裝系統、軟體,次硬碟BIOS+GPT儲存檔案,這是很多影音檔案發燒友在使用的模式。

(3)UEFI+MBR可以把UEFI設定成Legacy模式(傳統模式)、開啟CSM相容模組,讓其支援傳統MBR啟動,但純屬瞎折騰,帶來的效果同BIOS+MBR。沒有意義。

(4)UEFI+GPT:可用,可啟動系統。最常見!未來趨勢。如果要把大於2T的硬碟作為系統盤來安裝系統的話,就必須如此。而且系統須使用64位系統,否則無法引導。但系統又不是傳統在PE下安裝後就能直接使用的,引導還得經過處理才行。UEFI和GPT是相輔相成的。

UEFI+GPT並不能非常有效的提高開機速度(當然,還是有點作用的),網傳的X秒啟動,大多數是混淆了WIN8/8.1的假關機功能造成的。理性對待UEFI+GPT,這只是一個新模式,不是神話。