磁碟分割槽MBR和GPT格式詳解(Linux)

2021-10-17 09:05:09 字數 3419 閱讀 4915

機械硬碟主要由磁碟碟片、磁頭、主軸與傳動軸等組成,資料存放在具有磁性物質的磁碟碟片中。

實際執行時,主軸馬達讓碟片轉動,然後磁頭臂讓磁頭在碟片上面進行讀寫操作。

讀取資料時以磁頭轉圈的方式進行,在磁片同心圓中切出乙個乙個的小區塊,這些小區塊就是磁碟的最小物理儲存單位,成為扇區(sector),同乙個同心圓的扇區組合成的圓就是磁軌(track)。由於磁碟裡可能會有多個碟片,因此在所有碟片上面的同乙個磁軌可以組成 柱面(cylinder)。

外圈的圓比較大,為了合理利用這些空間,磁碟外圈圓會比內圈有更多的扇區。所以,當碟片轉一圈時,外圈的扇區數量比較多,因此如果資料寫入在外圈,轉一圈能夠讀寫的資料量比內圈多。因此資料的讀寫會由外圈開始向內寫,這是預設的方式。

原本硬碟的扇區都是設計成512b的大小,但隨著硬碟容量的增大,為了減少資料量的拆解,目前絕大多數的高容量硬碟使用了4k大小的扇區設計。

為什麼要分割槽?

主要的分割槽格式有早期的mbr格式和新的gpt格式。

(1)簡介

mbr分割槽格式中柱面是檔案系統的最小單位,也就是分割槽的最小單位。

第乙個扇區(舊式磁碟中為512位元組)中存放著啟動引導程式和分割槽表:

分割槽表64位元組最多僅能有四組記錄區,每個記錄區16位元組。

如圖中有4個主分割槽。

總結:

(2)擴充套件分割槽和邏輯分割槽:

擴充套件分割槽的目的是使用額外的扇區來記錄分割槽的資訊,擴充套件分割槽本身並不能被拿來格式化。

擴充套件分割槽可以繼續劃分出邏輯分割槽(logical partition)

/dev/sda[1-4] 都是留給主分割槽或擴充套件分割槽用的,所以邏輯分割槽的裝置檔名就從 sda5 開始。

圖中分割槽在linux下的檔名是:

p1:/dev/sda1

p2:/dev/sda2

l1:/dev/sda5

l2:/dev/sda6

l3:/dev/sda7

l4:/dev/sda8

l5:/dev/sda9

總結:

mbr模式簡略圖

mbr分割槽表結構

偏移長度(位元組)

意義00h

1分割槽狀態:00–>非活動分割槽;80–>活動分割槽;其它數值沒有意義

01h1

分割槽起始磁頭號(head),用到全部8位

02h2

分割槽起始扇區號(sector),佔據02h的位0-5;該分割槽的起始磁柱號(cylinder),佔據02h的位6-7和03h的全部8位

04h1

檔案系統標誌位

05h1

分割槽結束磁頭號(head),用到全部8位

06h2

分割槽結束扇區號(sector),佔據06h的位0-5;該分割槽的結束磁柱號(cylinder),佔據06h的位6-7和07h的全部8位

08h4

分割槽起始相對扇區號

0ch4

分割槽總的扇區數

(3)mbr分割槽大小限制的問題:

分割槽表組最後4個位元組表示分割槽中的扇區數量,有4*8=32位,最大值為 20+21+ … +231 = 232-1 個扇區,每個扇區大小為512位元組,所以能表示的最大容量為 :

( 232

−1)∗

512=

2199023255040by

tes=

2048gb

=2tb

(2^-1) * 512= 2199023255040 \, bytes = 2048 \, gb = 2 \, tb

(232−1

)∗51

2=21

9902

3255

040b

ytes

=204

8gb=

2tb注意這裡是用1:1024換算的,硬碟製造商使用1:1000換算,所以就會得出2.2tb的結果。

2tb是對單一分割槽容量的限制,如果第乙個分割槽就佔了2tb,那麼其第二個分割槽的扇區實體地址就無法表示了,所以2tb也是對整個硬碟最大容量的限制。

詳細說明見wiki頁面:

mbr的弊端:

(1)簡介

如今扇區大小不僅有512位元組的,還有4k大小的。為了相容所有的磁碟,使用邏輯區塊位址(logical block address,lba)來處理扇區。gpt將硬碟所有區塊以lba(預設512位元組)來規劃,第乙個lba稱為lba0。

與mbr僅使用第乙個512位元組來記錄不同,gpt使用了34個lba來記錄分割槽資訊。相比於mbr中只有乙個區塊記錄分割槽資訊,gpt除了前面34個lba記錄以外,整個磁碟的最後34個lba也拿來做備份。

起始位元組

長度內容

016位元組

分割槽型別guid

1616位元組

分割槽guid

328位元組

起始lba(小端序)

408位元組

末尾lba

488位元組

屬性標籤(如:60表示「唯讀」)

5672位元組

分割槽名(可以包括36個utf-16(小端序)字元)

(16+16+8+8+8+72=128)

(3)gpt分割槽大小限制:

gpt 在每組記錄中分別提供了 8位元組 = 64位 來記載開始/結束的扇區號碼。因此,理論上對於單一分割槽槽來說, 它的最大容量限制為 264 * 512bytes = 263 kbytes = 233tb = 8 zb 。但是受作業系統限制,一般乙個分割槽最大限制為 18eb。

gpt 分割槽沒有所謂的主、擴充套件、邏輯分割槽的概念,每個都可以視為是主分割槽,每乙個分割槽都可以格式化。

gpt 分割槽預設可以提供多達128 組紀錄,而在linux 本身的核心裝置記錄中,針對單一磁碟來說,雖然過去最多只能到達15 個分割槽,不過由於linux 核心通過udev 等方式的處理,現在linux 也已經沒有這個限制了。

2.

磁碟分割槽MBR和GPT

參考 guid gpt 分割槽表詳解 gpt分割槽表詳解 gpt學習文件 先說說目前廣泛使用的磁碟分割槽表方案。傳統的分割槽方案 稱為mbr分割槽方案 是將分割槽資訊儲存到磁碟的第乙個扇區 mbr扇區 中的64個位元組中,每個分割槽項占用16個位元組,這16個位元組中存有活動狀態標誌 檔案系統標識 ...

基於GPT格式磁碟分割槽

mbr分割槽標準決定了mbr只支援2tb以下的硬碟分割槽,為了能支援使用大於2tb硬碟空間,需使用gpt格式進行分割槽。建立大於2tb的分割槽,需使用parted工具。在企業真實環境中,通常一台伺服器有多快硬碟,整個硬碟容量為10tb,需要基於gtp格式對10tb硬碟進行分割槽,操作步驟如下 par...

GPT磁碟分割槽建立

公司伺服器需要配置8t的空間,如此大的硬碟預設分割槽自動分解為4個mbr分割槽,這個與要求不符,轉化為gpt磁碟後才搞定。先說說廣泛使用的磁碟分割槽表方案。傳統的分割槽方案 稱為mbr分割槽方案 是將分割槽資訊儲存到磁碟的第乙個扇區 mbr扇區 中的64個位元組中,每個分割槽項占用16個位元組,這1...