GPT分割槽詳解

2021-07-28 16:10:32 字數 4421 閱讀 3518

本文作者是一位開源理念的堅定支持者,所以本文雖然不是軟體,但是遵照開源的精神發布。

本文作者十分願意與他人分享勞動成果,如果你對我的其他翻譯作品或者技術文章有興趣,可以在如下位置檢視現有的作品集:

由於作者水平有限,因此不能保證作品內容準確無誤。如果你發現了作品中的錯誤(哪怕是錯別字也好),請來信指出,任何提高作品質量的建議我都將虛心接納。

保護mbr包含乙個dos分割槽表(lba0),只包含乙個型別值為0xee的分割槽項,在小於2tb的磁碟上,大小為整個磁碟;在更大的磁碟上,它的大小固定為2tb。它的作用是阻止不能識別gpt分割槽的磁碟工具試圖對其進行格式化等操作,所以該扇區被稱為「保護mbr」。實際上,efi根本不使用這個分割槽表。

efi資訊區(gpt頭)

起始於磁碟的lba1,通常也只占用這個單一扇區。其作用是定義分割槽表的位置和大小。gpt頭還包含頭和分割槽表的校驗和,這樣就可以及時發現錯誤。

分割槽表分割槽表區域包含分割槽表項。這個區域由gpt頭定義,一般占用磁碟lba2~lba33扇區。分割槽表中的每個分割槽項由起始位址、結束位址、型別值、名字、屬性標誌、guid值組成。分割槽表建立後,128位的guid對系統來說是唯一的。

gpt分割槽

最大的區域,由分配給分割槽的扇區組成。這個區域的起始和結束位址由gpt頭定義。

備份區備份區域位於磁碟的尾部,包含gpt頭和分割槽表的備份。它占用gpt結束扇區和efi結束扇區之間的33個扇區。其中最後乙個扇區用來備份1號扇區的efi資訊,其餘的32個扇區用來備份lba2~lba33扇區的分割槽表。

efi資訊區位於磁碟的1號扇區(lba1),也稱為gpt頭。其具體結構如下表所示

efi資訊區結構

相對位元組偏移量

(十六進製制)

位元組數說明[整數皆以little endian方式表示]

00~07

8gpt頭簽名「45 46 49 20 50 41 52 54」(ascii碼為「efi part」)

08~0b

4版本號,目前是1.0版,其值是「00 00 01 00」

0c~0f

4gpt頭的大小(位元組數),通常為「5c 00 00 00」(0x5c),也就是92位元組。

10~13

4gpt頭crc校驗和(計算時把這個字段本身看做零值)

14~17

4保留,必須為「00 00 00 00」

18~1f

8efi資訊區(gpt頭)的起始扇區號,通常為「01 00 00 00 00 00 00 00」,也就是lba1。

20~27

8efi資訊區(gpt頭)備份位置的扇區號,也就是efi區域結束扇區號。通常是整個磁碟最末乙個扇區。

28~2f

8gpt分割槽區域的起始扇區號,通常為「22 00 00 00 00 00 00 00」(0x22),也即是lba34。

30~37

8gpt分割槽區域的結束扇區號,通常是倒數第34扇區。

38~47

16磁碟guid(全球唯一識別符號,與uuid是同義詞)

48~4f

8分割槽表起始扇區號,通常為「02 00 00 00 00 00 00 00」(0x02),也就是lba2。

50~53

4分割槽表總項數,通常限定為「80 00 00 00」(0x80),也就是128個。

54~57

4每個分割槽表項占用位元組數,通常限定為「80 00 00 00」(0x80),也就是128位元組。

58~5b

4分割槽表crc校驗和

5c~*

*保留,通常是全零填充

分割槽項結構

相對位元組偏移量

(十六進製制)

位元組數說明[整數皆以little endian方式表示]

00~0f

16用guid表示的分割槽型別

10~1f

16用guid表示的分割槽唯一標示符

20~27

8該分割槽的起始扇區,用lba值表示。

28~2f

8該分割槽的結束扇區(包含),用lba值表示,通常是奇數。

30~37

8該分割槽的屬性標誌

38~7f

72utf-16le編碼的人類可讀的分割槽名稱,最大32個字元。

注意,扇區尺寸不能假定為512位元組,也就是說,乙個扇區內可能存放4個以上的分割槽項,也可能只存放乙個分割槽項的一部分。也就是說,除了頭兩個扇區(lba 0 和 lba 1)之外,gpt規範僅定義了資料結構的尺寸,而不關心使用多少個扇區進行儲存。

分割槽型別

相關作業系統

guid[little endian]

含義none

00000000-0000-0000-0000-000000000000

未使用none

024dee41-33e7-11d3-9d69-0008c781f39f

mbr分割槽表

none

c12a7328-f81f-11d2-ba4b-00a0c93ec93b

efi系統分割槽[efi system partition (esp)],必須是vfat格式

none

bc13c2ff-59e6-4262-a352-b275fd6f7172

擴充套件boot分割槽,必須是vfat格式

none

21686148-6449-6e6f-744e-656564454649

bios引導分割槽,其對應的ascii字串是"hah!idontneedefi"。

none

d3bfe2de-3daf-11df-ba40-e3a556d89593

intel fast flash (iffs) partition (for intel rapid start technology)

windows

e3c9e316-0b5c-4db8-817d-f92df00215ae

微軟保留分割槽

windows

ebd0a0a2-b9e5-4433-87c0-68b6b72699c7

基本資料分割槽

windows

de94bba4-06d1-4d40-a16a-bfd50179d6ac

windows恢復環境

linux

0fc63daf-8483-4772-8e79-3d69d8477de4

資料分割槽。linux曾經使用和windows基本資料分割槽相同的guid。

這個新的guid是由 gpt fdisk 和 gnu parted 開發者根據linux傳統的"8300"分割槽**發明的。

linux

44479540-f297-41b2-9af7-d131d5f0458a

x86根分割槽 (/) 這是systemd的發明,可用於無fstab時的自動掛載

linux

4f68bce3-e8cd-4db1-96e7-fbcaf984b709

x86-64根分割槽 (/) 這是systemd的發明,可用於無fstab時的自動掛載

linux

69dad710-2ce4-4e3c-b16c-21a1d49abed3

arm32根分割槽 (/) 這是systemd的發明,可用於無fstab時的自動掛載

linux

b921b045-1df0-41c3-af44-4c6f280d3fae

aarch64根分割槽 (/) 這是systemd的發明,可用於無fstab時的自動掛載

linux

3b8f8425-20e0-4f3b-907f-1a25a76f98e8

伺服器資料分割槽(/srv) 這是systemd的發明,可用於無fstab時的自動掛載

linux

933ac7e1-2eb4-4f13-b844-0e14e2aef915

home分割槽 (/home) 這是systemd的發明,可用於無fstab時的自動掛載

linux

0657fd6d-a4ab-43c4-84e5-0933c84b4f4f

交換分割槽(swap) 不是systemd的發明,但同樣可用於無fstab時的自動掛載

linux

a19d880f-05fc-4d3b-a006-743f0f84911e

raid分割槽

linux

e6d6d379-f507-44c2-a23c-238f2a3df928

邏輯卷管理器(lvm)分割槽

linux

8da63339-0007-60c0-c436-083ac8230908保留

microsoft還進一步對分割槽的屬性進行了細分:低位4位元組表示與分割槽型別無關的屬性,高位4位元組表示與分割槽型別有關的屬性。microsoft目前使用了下列屬性:

分割槽屬性

bit解釋0

系統分割槽(磁碟分割槽工具必須將此分割槽保持原樣,不得做任何修改)

1efi隱藏分割槽(efi不可見分割槽)

2傳統的bios的可引導分割槽標誌

60唯讀

62隱藏

63不自動掛載,也就是不自動分配碟符

GPT 分割槽詳解

保護mbr 保護mbr包含乙個dos分割槽表 lba0 只包含乙個型別值為0xee的分割槽項,在小於2tb的磁碟上,大小為整個磁碟 在更大的磁碟上,它的大小固定為2tb。它的作用是阻止不能識別gpt分割槽的磁碟工具試圖對其進行分割槽或格式化等操作,所以該扇區被稱為 保護mbr 實際上,efi根本不使...

詳解MBR分割槽結構以及GPT分割槽結構

一 mbr分割槽結構 mbr磁碟分割槽是一種使用最為廣泛的分割槽結構,它也被稱為dos分割槽結構,但它並不僅僅應用於windows系統平台,也應用於linux,基於x86的unix等系統平台。它位於磁碟的0號扇區 一扇區等於512位元組 是乙個重要的扇區 簡稱mbr扇區 mbr扇區由以下四部分組成 ...

GPT分割槽格式

1.gpt定義 全域性唯一標識分割槽表 guid partition table,縮寫 gpt 是乙個實體硬碟的分割槽表的結構布局的標準。它是可擴充套件韌體介面 uefi 標準的一部分,被用於替代bios系統中使用32bits來儲存邏輯塊位址和分割槽大小資訊的主引導記錄 mbr 分割槽表。gpt標準...