對常用mbr分割槽和gpt分割槽的總結及使用(二)
阿新 • • 發佈:2019-02-08
GPT分割槽的簡介
一個小疑惑
mbr格式的分割槽表支援的最大分割槽為2 TB 。樓主曾經認為每個分割槽支援最大容量為2TB,如果把一塊8TB硬碟分為4個區每個區分2TB,不是還可以使用MBR分割槽表嗎?迷惑了一段時間才發現原來每個分割槽資訊表中包含“首扇區相對扇區號”這個資訊,同樣也是由四個位元組組成,最大表示2T,這也就意味著,如果一個分割槽的大小達到2TB,則之後的分割槽的首扇區就會記錄不了,所以mbr分割槽表型別支援硬碟的最大容量為2TB。
GPT分割槽
全域性唯一標識分割槽表(GUID Partition Table,縮寫:GPT)是一個實體磁碟的分割槽表的結構佈局的標準。它是可擴充套件韌體介面(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一32bits來儲存邏輯塊地址和大小資訊的主引導記錄(MBR)分割槽表,GPT分配64bits給邏輯塊地址。
LBA 0
在GPT分割槽表的最開頭,處於相容性考慮仍然儲存了一份傳統的MBR(LBA 0),這個MBR也叫做保護性MB(Protective MBR)。LBA 1
分割槽表頭(LBA 1)定義了硬碟的可用空間以及組成分割槽表的項的大小和數量。在使用64位Windows Server 2003的機器上,最多可以建立128個分割槽,即分割槽表中保留了128個項,其中每個都是128位元組。(EFI標準要求分割槽表最小要有16,384位元組,即128個分割槽項的大小)分割槽表頭還記錄了這塊硬碟的GUID,記錄了分割槽表頭本身的位置和大小(位置總是在LBA 1)以及備份分割槽表頭和分割槽表的位置和大小(在硬碟的最後)。它還儲存著它本身和分割槽表的CRC32校驗。韌體、載入程式和作業系統在啟動時可以根據這個校驗值來判斷分割槽表是否出錯,如果出錯了,可以使用軟體從硬碟最後的備份GPT中恢復整個分割槽表,如果備份GPT也校驗錯誤,硬碟將不可使用。所以GPT硬碟的分割槽表不可以直接使用16進位制編輯器修改。起始位元組 | 長度 | 內容 |
---|---|---|
0 | 8位元組 | 簽名("EFI PART") |
8 | 4位元組 | 修訂 |
12 | 4位元組 | 分割槽表頭的大小 |
16 | 4位元組 | 分割槽表頭(第0-91位元組)的CRC32校驗,在計算時,把這個欄位作為0處理,需要計算出分割槽序列的CRC32校驗後再計算本欄位 |
20 | 4位元組 | 保留,必須是 0 |
24 | 8位元組 | 當前LBA(這個分割槽表頭的位置) |
32 | 8位元組 | 備份LBA(另一個分割槽表頭的位置) |
40 | 8位元組 | 第一個可用於分割槽的LBA(主分割槽表的最後一個LBA + 1) |
48 | 8位元組 | 最後一個可用於分割槽的LBA(備份分割槽表的第一個LBA − 1) |
56 | 16位元組 | 硬碟GUID(在類UNIX系統中也叫UUID) |
72 | 8位元組 | 分割槽表項的起始LBA(在主分割槽表中是2) |
80 | 4位元組 | 分割槽表項的數量 |
84 | 4位元組 | 一個分割槽表項的大小(通常是128) |
88 | 4位元組 | 分割槽序列的CRC32校驗 |
92 | * | 保留,剩餘的位元組必須是0(對於512位元組LBA的硬碟即是420個位元組) |
LBA 2–33
LBA 2–33的位置存放的是分割槽表項。GPT分割槽表使用簡單而直接的方式表示分割槽。一個分割槽表項的前16位元組是分割槽型別GUID。例如,EFI系統分割槽的GUID型別是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下來的16位元組是該分割槽唯一的GUID(這個GUID指的是該分割槽本身,而之前的GUID指的是該分割槽的型別)。再接下來是分割槽起始和末尾的64位LBA編號,以及分割槽的名字和屬性。起始位元組 | 長度 | 內容 |
---|---|---|
0 | 16位元組 | 分割槽型別GUID |
16 | 16位元組 | 分割槽GUID |
32 | 8位元組 | 起始LBA(小端格式) |
40 | 8位元組 | 末尾LBA |
48 | 8位元組 | 屬性標籤(如:60表示"只讀") |
56 | 72位元組 | 分割槽名(可以包括36個UTF-16(小端格式)字元) |
總結:
gpt分割槽用64位塊定址方式區別於mbr的32位定址方式,用34(LBA0-33)塊來儲存分割槽資訊,mbr使用一個扇區來儲存,一般塊大小和扇區大小都是512位元組。
對於幾個資料的解釋:
gpt分割槽理論可以處理磁碟大小:2的64次方(64位地址的定址範圍,定址單位為塊)*512位元組(塊大小)
windows中最多可以建立分割槽數量:32(儲存分割槽表項的塊LBA2-33)*512位元組(塊大小)/128位元組(分割槽表項的大小)=128
windows下分割槽的大小:256GB,有檔案系統決定,理論大小前面已給出
科技的進步就是在現有的基礎下未雨綢繆,mbr分割槽可能已經滿足絕大多數人的需求,隨著時代的發展,大資料時代的到來,mbr分割槽明顯制約了硬碟的發展,gpt分割槽無疑會成為人們更好的選擇。在我看來,技術的進步就是不斷的發燒,追求極限,制定出更好的標準來服務人類的發展。