磁碟是GPT還是MBR的區別及轉換方法

在Windows 10電腦上,您可能要在使用可引導Window USB前確定電腦的分區是GPT還是MBR。但是您知道硬碟的GPT和MBR的區別嗎?

硬碟

電腦上硬碟機主要由碟片、機械臂、讀寫磁頭以及主軸電機等。數據以0和1二進制方式存儲在磁片的磁道(Track)上。 0號磁道在磁片最外側,越靠近軸心,磁道編號越大。每個磁道又可劃分為扇區(Sector),磁碟的讀寫以扇區為基本單位,扇區的物理大小為512bytes或4Kbytes。

硬碟结构如下图所示:

通常磁碟可能有多個磁片,所有磁片的同一個磁道組成磁柱(Cylinder),磁柱是傳統磁碟分區的最小單位,也就是文件系統的基本單位。

一個分區從開始磁柱開始到結束磁柱結束。GPT可達到64bit紀錄功能的分區表, 現在可以使用扇區(sector)編號來作為分區單位! 對磁碟進行分區,讀寫磁頭在讀取資料的時候可以減少機械臂的移動,加快數據讀寫效率。同時也可以方便用戶對檔案資料進行分類整理。

分區表其實目前有兩種格式。

0號磁道的第1個扇區就是整個磁碟的第一個扇區,存放著整個磁碟的分區信息和啟動程式! 傳統上第一個扇區磁碟分區信息資料格式為MBR(Master Boot Record,主引導記錄分區表),所以也經常把第一個扇區稱為MBR扇區。但是由於近年來磁碟的容量不斷擴大,MBR無法記錄2TB以上容量磁碟的分區信息。於是新的磁碟分區格式稱為GPT(GUID partition table,全局唯一標識分區表)卻可以做到!

MBR和GPT是Windows系統最受用戶歡迎的分區格式。幾乎每個磁盤都使用主引導記錄 (MBR) 和 GUID 分區表 (GPT)。但是這兩種分區格式與限制不太相同。

GPT和MBR的區別

MBR分區表

其實MBR分區表格式是windows的磁碟分區方式。早期的Linux系統為了兼容Windows的磁碟,所以使用了支持Windows的MBR(Master Boot Record)格式來存放開機管理程式bootloader和分區表! 開機管理程式bootloader和分區表存放在磁碟的第一個扇區, 這個扇區大小通常是512bytes。其記錄了當前使用的磁碟的配置。因此,如果該扇區損壞,該磁碟機將無法使用。在這種情況下,您需要重建MBR。

第一個扇區512bytes會有這些資料:

  • 主引導啟動記錄區(Master Boot Record, MBR):大小為446bytes,存放開機管理程式bootloader;
  • 分區表(partition table):大小為64bytes,記錄整個硬盤分區信息;
  • 引導符(2 字節)。

MBR分區表只有64 bytes,分區操作就定義這64bytes的分區表,通常情況下,分區的最小單位為磁柱(cylinder), 每個分區記錄項記錄了分區的起始和結束磁柱編號, 一個分區記錄項為16字節,最多只能容納四個分區記錄項, 四個分區記錄的分區可以是主(Primary)分區,也可以是擴展(Extended)分區。

磁碟的分區就可以用下面的俯視圖表示,注意這是第一個磁片變形後的俯視圖,後面還有若干個磁片:

假设硬碟总共有這400个磁柱,分为四个主分區,第一个主分區为1到100号磁柱,以此类推第四个分區范围为301到400号磁柱。 四个分區在windows作業系统中的代號就是C, D, E, F。那麼讀寫F碟其实就是读写磁碟的301~400号磁柱之间的磁道上。

上面這四個分區即可以是主分區,也可以擴展分區!主分區可以直接被格式化為相應的檔案系統, 但是擴展分區不可直接被格式化,需要再劃分為(logical partition),邏輯分區可以被格式化。也就是說可以被用戶直接操作使用的要么是主分區,要么是邏輯分區,而邏輯分區是從擴展分區劃分而來。

通過分區將數據分組存放在磁盤的磁柱區間內,增加了數據存儲的安全性, 一個分區中的磁道損壞或者數據改變,不會影響到其他分區數據的讀寫。例如重裝系統的時候, 只需要將c盤的數據備份到其他分區,重裝系統並不會對其他分區造成影響!

由於分區將資料集中存放在某個磁柱區間內,在讀寫檔案資料的時候, 讀寫磁頭不需要大幅度的前後移動,大大加快了資料讀寫的效率。

GPT(GUID partition table)分區表

MBR分區表僅有64bytes,因此由於MBR分區表的限制,操作系統無法識別2.2T以上的磁碟容量!MBR僅有一個扇區,沒有備份,如果MBR扇區損壞,整個磁碟也就損壞了,資料也將消失。

近年來磁碟容量越來越大,有些就高達好幾個TB。顯然MBR分區表將不能滿足這種磁碟機的要求。因此,為了解決這個問題,就有了GPT磁碟分區格式!

為了兼容所有的磁碟,GPT將磁碟扇區定義為邏輯區塊地址LBA(Logical Block Address)。 GPT將所有LBA(默認為512bytes)從0開始編號,第一個LBA為LBA0。

與MBR僅使用第一個512bytes區塊來紀錄分區信息不同, GPT使用了最前面的34個LBA區塊來紀錄磁碟分區信息! 除了前面34個LBA之外,整個磁碟最後的33個LBA被用來作為備份。這大大增加的磁碟資料的安全性! GPT分區表的結構示意圖如下所示:

  • LBA0:MBR兼容區塊,與MBR模式相似的,這個兼容區塊也分為兩個部份,一個就是和之前446bytes類似的區塊,儲存了作業系統加載程式bootloader! 而原本用來存放分區紀錄的空間,僅存儲這一個特殊標誌,表示此磁碟為GPT格式。
  • LBA1:GPT表頭紀錄。這個部份紀錄了分區表本身的位置與大小,同時紀錄了備份用的GPT分區(就是前面談到的在最後34個LBA區塊)放置的位置, 同時放置了分區表的檢驗碼(CRC32),操作系統可以根據這個檢驗碼來判斷GPT是否正確。
  • LBA2-33:實際紀錄分區信息。從LBA2區塊開始,每個LBA都可以紀錄4個分區紀錄,默認的情況下,總共可以有4*32=128個分區紀錄! 因為每個LBA有512bytes,因此每個紀錄用到128bytes的空間,除了每個紀錄所需要的標識符與相關的紀錄之外, GPT在每個紀錄中分別提供了64bits來記錄開始和結束扇區號碼。

簡單總結MBR和GPT的區別:

那麼你怎麼知道你的硬碟是MBR還是GPT呢?

如果您想閱讀更多關於GPT的相關資訊,請點擊貓噗知識+

Leave a comment

Design a site like this with WordPress.com
Get started