It has several advantages over master boot record (MBR) partition tables, such as support for more than four primary partitions and 64-bit rather than 32-bit logical block addresses (LBA) for blocks on a storage device. The larger LBA size supports larger disks.
Some BIOSes support GPT partition tables as well as MBR partition tables, in order to support larger disks than MBR partition tables can support.
GPT uses universally unique identifiers (UUIDs), which are also known as globally unique identifiers (GUIDs), to identify partitions and partition types.
All modern personal computer operating systems support GPT. Some, including macOS and Microsoft Windows on the x86 architecture, support booting from GPT partitions only on systems with EFI firmware, but FreeBSD and most Linux distributions can boot from GPT partitions on systems with either the BIOS or the EFI firmware interface.
The Master Boot Record (MBR) partitioning scheme, widely used since the early 1980s, imposed limitations for use of modern hardware. The available size for block addresses and related information is limited to 32 bits. For hard disks with 512‑byte sectors, the MBR partition table entries allow a maximum size of 2 TiB (2³² × 512‑bytes) or 2.20 TB (2.20 × 10¹² bytes).[1]
In the late 1990s, Intel developed a new partition table format as part of what eventually became the Unified Extensible Firmware Interface (UEFI). The GUID Partition Table is specified in chapter 5 of the UEFI 2.11 specification.[2]: 111 GPT uses 64 bits for logical block addresses, allowing a maximum disk size of 264 sectors. For disks with 512‑byte sectors, the maximum size is 8 ZiB (264 × 512‑bytes) or 9.44 ZB (9.44 × 10²¹ bytes).[1] For disks with 4,096‑byte sectors the maximum size is 64 ZiB (264 × 4,096‑bytes) or 75.6 ZB (75.6 × 10²¹ bytes).
In 2010, hard-disk manufacturers introduced drives with 4,096‑byte sectors (Advanced Format).[3] For compatibility with legacy hardware and software, those drives include an emulation technology (512e) that presents 512‑byte sectors to the entity accessing the hard drive, despite their underlying 4,096‑byte physical sectors.[4] Performance could be degraded on write operations, when the drive is forced to perform two read-modify-write operations to satisfy a single misaligned 4,096‑byte write operation.[4] Since April 2014, enterprise-class drives without emulation technology (4K native) have been available on the market.[5][6]
Readiness of the support for 4 KB logical sectors within operating systems differs among their types, vendors and versions.[7] For example, Microsoft Windows supports 4K native drives since Windows 8 and Windows Server 2012 (both released in 2012) in UEFI.[8]
Like MBR, GPT uses logical block addressing (LBA) in place of the historical cylinder-head-sector (CHS) addressing. The protective MBR is stored at LBA 0, and the GPT header is in LBA 1. The GPT header has a pointer to the partition table (Partition Entry Array), which is typically at LBA 2. Each entry in the partition table has the same size, which is 128 or 256 or 512, etc., bytes; typically this size is 128 bytes. The UEFI specification stipulates that a minimum of 16,384 bytes, regardless of sector size, are allocated for the Partition Entry Array. Thus, on a disk with 512-byte sectors, at least 32 sectors are used for the Partition Entry Array, and the first usable block is at LBA 34 or higher, while on a 4,096-byte sector disk, at least 4 sectors are used for the Partition Entry Array, and the first usable block is at LBA 6 or higher. In addition to the primary GPT header and Partition Entry Array, stored at the beginning of the disk, there is a backup GPT header and Partition Entry Array, stored at the end of the disk. The backup GPT header must be at the last block on the disk (LBA -1) and the backup Partition Entry Array is placed between the end of the last partition and the last block.[2]: pp. 115-120, §5.3
For limited backward compatibility, the space of the legacy Master Boot Record (MBR) is still reserved in the GPT specification, but it is now used in a way that prevents MBR-based disk utilities from misrecognizing and possibly overwriting GPT disks. This is referred to as a protective MBR.[9]
A single partition of type EEh, encompassing the entire GPT drive (where "entire" actually means as much of the drive as can be represented in an MBR), is indicated and identifies it as GPT. Operating systems and tools which cannot read GPT disks will generally recognize the disk as containing one partition of unknown type and no empty space, and will typically refuse to modify the disk unless the user explicitly requests and confirms the deletion of this partition. This minimizes accidental erasures.[9] Furthermore, GPT-aware OSes may check the protective MBR and if the enclosed partition type is not of type EEh or if there are multiple partitions defined on the target device, the OS may refuse to manipulate the partition table.[10]
If the actual size of the disk exceeds the maximum partition size representable using the legacy 32-bit LBA entries in the MBR partition table, the recorded size of this partition is clipped at the maximum, thereby ignoring the rest of the disk. This amounts to a maximum reported size of 2 TiB, assuming a disk with 512 bytes per sector (see 512e). It would result in 16 TiB with 4 KiB sectors (4Kn), but since many older operating systems and tools are hard coded for a sector size of 512 bytes or are limited to 32-bit calculations, exceeding the 2 TiB limit could cause compatibility problems.[9]
In operating systems that support GPT-based boot through BIOS services rather than EFI, the first sector may also still be used to store the first stage of the bootloader code, but modified to recognize GPT partitions. The bootloader in the MBR must not assume a sector size of 512 bytes.[9]
The partition table header defines the usable blocks on the disk. It also defines the number and size of the partition entries that make up the partition table (offsets 80 and 84 in the table).[2]: 117-118
After the primary header and before the backup header, the Partition Entry Array describes partitions, using a minimum size of 128 bytes for each entry block.[13] The starting location of the array on disk, and the size of each entry, are given in the GPT header. The first 16 bytes of each entry designate the partition type's globally unique identifier (GUID). For example, the GUID for an EFI system partition is C12A7328-F81F-11D2-BA4B-00A0C93EC93B. The second 16 bytes are a GUID unique to the partition. Then follow the starting and ending 64 bit LBAs, partition attributes, and the 36 character (max.) Unicode partition name. As is the nature and purpose of GUIDs and as per RFC 4122, no central registry is needed to ensure the uniqueness of the GUID partition type designators.[14][2]: 1970
The 64-bit partition table attributes are shared between 48-bit common attributes for all partition types, and 16-bit type-specific attributes:
Windows 7 and earlier do not support UEFI on 32-bit platforms, and therefore do not allow booting from GPT partitions.[33]
"Partition type GUID" means that each partition type is strictly identified by a GUID number unique to that type, and therefore partitions of the same type will all have the same "partition type GUID". Each partition also has a "partition unique GUID" as a separate entry, which as the name implies is a unique id for each partition.
Operating system Partition type Globally unique identifier (GUID)[g] OS independent Unused entry 00000000-0000-0000-0000-000000000000 MBR partition scheme 024DEE41-33E7-11D3-9D69-0008C781F39F EFI System partition C12A7328-F81F-11D2-BA4B-00A0C93EC93B BIOS boot partition[h] 21686148-6449-6E6F-744E-656564454649 Intel Fast Flash (iFFS) partition (for Intel Rapid Start technology)[43][44] D3BFE2DE-3DAF-11DF-BA40-E3A556D89593 Sony boot partition[i] F4019732-066E-4E12-8273-346C5641494F Lenovo boot partition[i] BFBFAFE7-A34F-448A-9A5B-6213EB736C22 Windows Microsoft Reserved Partition (MSR)[46] E3C9E316-0B5C-4DB8-817D-F92DF00215AE Basic data partition[46][j] EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 Logical Disk Manager (LDM) metadata partition[46] 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3 Logical Disk Manager data partition[46] AF9B60A0-1431-4F62-BC68-3311714A69AD Windows Recovery Environment[46] DE94BBA4-06D1-4D40-A16A-BFD50179D6AC IBM General Parallel File System (GPFS) partition 37AFFC90-EF7D-4E96-91C3-2D7AE055B174 Storage Spaces partition[48] E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D Storage Replica partition[49] 558D43C5-A1AC-43C0-AAC8-D1472B2923D1 HP-UX Data partition 75894C1E-3AEB-11D3-B7C1-7B03A0000000 Service partition E2A1E728-32E3-11D6-A682-7B03A0000000 Linux[50][51][52][53] Linux filesystem data[j] 0FC63DAF-8483-4772-8E79-3D69D8477DE4 RAID partition A19D880F-05FC-4D3B-A006-743F0F84911E Root partition Alpha[50] 6523F8AE-3EB1-4E2A-A05A-18B695AE656F ARC[50] D27F46ED-2919-4CB8-BD25-9531F3C16534 ARM 32‐bit[50] 69DAD710-2CE4-4E3C-B16C-21A1D49ABED3 AArch64[50] B921B045-1DF0-41C3-AF44-4C6F280D3FAE IA-64[50] 993D8D3D-F80E-4225-855A-9DAF8ED7EA97 LoongArch 64‐bit[50] 77055800-792C-4F94-B39A-98C91B762BB6 mips: 32‐bit MIPS big‐endian[50] E9434544-6E2C-47CC-BAE2-12D6DEAFB44C mips64: 64‐bit MIPS big‐endian[50] D113AF76-80EF-41B4-BDB6-0CFF4D3D4A25 mipsel: 32‐bit MIPS little‐endian[50] 37C58C8A-D913-4156-A25F-48B1B64E07F0 mips64el: 64‐bit MIPS little‐endian[50] 700BDA43-7A34-4507-B179-EEB93D7A7CA3 PA-RISC[50] 1AACDB3B-5444-4138-BD9E-E5C2239B2346 32‐bit PowerPC[50] 1DE3F1EF-FA98-47B5-8DCD-4A860A654D78 64‐bit PowerPC big‐endian[50] 912ADE1D-A839-4913-8964-A10EEE08FBD2 64‐bit PowerPC little‐endian[50] C31C45E6-3F39-412E-80FB-4809C4980599 RISC-V 32‐bit[50] 60D5A7FE-8E7D-435C-B714-3DD8162144E1 RISC-V 64‐bit[50] 72EC70A6-CF74-40E6-BD49-4BDA08E8F224 s390[50] 08A7ACEA-624C-4A20-91E8-6E0FA67D23F9 s390x[50] 5EEAD9A9-FE09-4A1E-A1D7-520D00531306 TILE-Gx[50] C50CDD70-3862-4CC3-90E1-809A8C93EE2C x86[50] 44479540-F297-41B2-9AF7-D131D5F0458A x86-64[50] 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 /usr partition Alpha[50] E18CF08C-33EC-4C0D-8246-C6C6FB3DA024 ARC[50] 7978A683-6316-4922-BBEE-38BFF5A2FECC ARM 32‐bit[50] 7D0359A3-02B3-4F0A-865C-654403E70625 AArch64[50] B0E01050-EE5F-4390-949A-9101B17104E9 IA-64[50] 4301D2A6-4E3B-4B2A-BB94-9E0B2C4225EA LoongArch 64‐bit[50] E611C702-575C-4CBE-9A46-434FA0BF7E3F mips: 32‐bit MIPS big‐endian[50] 773B2ABC-2A99-4398-8BF5-03BAAC40D02B mips64: 64‐bit MIPS big‐endian[50] 57E13958-7331-4365-8E6E-35EEEE17C61B mipsel: 32‐bit MIPS little‐endian[50] 0F4868E9-9952-4706-979F-3ED3A473E947 mips64el: 64‐bit MIPS little‐endian[50] C97C1F32-BA06-40B4-9F22-236061B08AA8 PA-RISC[50] DC4A4480-6917-4262-A4EC-DB9384949F25 32‐bit PowerPC[50] 7D14FEC5-CC71-415D-9D6C-06BF0B3C3EAF 64‐bit PowerPC big‐endian[50] 2C9739E2-F068-46B3-9FD0-01C5A9AFBCCA 64‐bit PowerPC little‐endian[50] 15BB03AF-77E7-4D4A-B12B-C0D084F7491C RISC-V 32‐bit[50] B933FB22-5C3F-4F91-AF90-E2BB0FA50702 RISC-V 64‐bit[50] BEAEC34B-8442-439B-A40B-984381ED097D s390[50] CD0F869B-D0FB-4CA0-B141-9EA87CC78D66 s390x[50] 8A4F5770-50AA-4ED3-874A-99B710DB6FEA TILE-Gx[50] 55497029-C7C1-44CC-AA39-815ED1558630 x86[50] 75250D76-8CC6-458E-BD66-BD47CC81A812 x86-64[50] 8484680C-9521-48C6-9C11-B0720656F69E Root verity partition for dm-verity Alpha[50] FC56D9E9-E6E5-4C06-BE32-E74407CE09A5 ARC [50] 24B2D975-0F97-4521-AFA1-CD531E421B8D ARM 32‐bit [50] 7386CDF2-203C-47A9-A498-F2ECCE45A2D6 AArch64 [50] DF3300CE-D69F-4C92-978C-9BFB0F38D820 IA-64 [50] 86ED10D5-B607-45BB-8957-D350F23D0571 LoongArch 64‐bit [50] F3393B22-E9AF-4613-A948-9D3BFBD0C535 mips: 32‐bit MIPS big‐endian [50] 7A430799-F711-4C7E-8E5B-1D685BD48607 mips64: 64‐bit MIPS big‐endian [50] 579536F8-6A33-4055-A95A-DF2D5E2C42A8 mipsel: 32‐bit MIPS little‐endian [50] D7D150D2-2A04-4A33-8F12-16651205FF7B mips64el: 64‐bit MIPS little‐endian [50] 16B417F8-3E06-4F57-8DD2-9B5232F41AA6 PA-RISC [50] D212A430-FBC5-49F9-A983-A7FEEF2B8D0E 64‐bit PowerPC little‐endian [50] 906BD944-4589-4AAE-A4E4-DD983917446A 64‐bit PowerPC big‐endian [50] 9225A9A3-3C19-4D89-B4F6-EEFF88F17631 32‐bit PowerPC [50] 98CFE649-1588-46DC-B2F0-ADD147424925 RISC-V 32‐bit [50] AE0253BE-1167-4007-AC68-43926C14C5DE RISC-V 64‐bit [50] B6ED5582-440B-4209-B8DA-5FF7C419EA3D s390 [50] 7AC63B47-B25C-463B-8DF8-B4A94E6C90E1 s390x [50] B325BFBE-C7BE-4AB8-8357-139E652D2F6B TILE-Gx [50] 966061EC-28E4-4B2E-B4A5-1F0A825A1D84 x86-64 [50] 2C7357ED-EBD2-46D9-AEC1-23D437EC2BF5 x86 [50] D13C5D3B-B5D1-422A-B29F-9454FDC89D76 /usr verity partition for dm-verity Alpha [50] 8CCE0D25-C0D0-4A44-BD87-46331BF1DF67 ARC [50] FCA0598C-D880-4591-8C16-4EDA05C7347C ARM 32‐bit [50] C215D751-7BCD-4649-BE90-6627490A4C05 AArch64 [50] 6E11A4E7-FBCA-4DED-B9E9-E1A512BB664E IA-64 [50] 6A491E03-3BE7-4545-8E38-83320E0EA880 LoongArch 64‐bit [50] F46B2C26-59AE-48F0-9106-C50ED47F673D mips: 32‐bit MIPS big‐endian [50] 6E5A1BC8-D223-49B7-BCA8-37A5FCCEB996 mips64: 64‐bit MIPS big‐endian [50] 81CF9D90-7458-4DF4-8DCF-C8A3A404F09B mipsel: 32‐bit MIPS little‐endian [50] 46B98D8D-B55C-4E8F-AAB3-37FCA7F80752 mips64el: 64‐bit MIPS little‐endian [50] 3C3D61FE-B5F3-414D-BB71-8739A694A4EF PA-RISC [50] 5843D618-EC37-48D7-9F12-CEA8E08768B2 64‐bit PowerPC little‐endian [50] EE2B9983-21E8-4153-86D9-B6901A54D1CE 64‐bit PowerPC big‐endian [50] BDB528A5-A259-475F-A87D-DA53FA736A07 32‐bit PowerPC [50] DF765D00-270E-49E5-BC75-F47BB2118B09 RISC-V 32‐bit [50] CB1EE4E3-8CD0-4136-A0A4-AA61A32E8730 RISC-V 64‐bit [50] 8F1056BE-9B05-47C4-81D6-BE53128E5B54 s390 [50] B663C618-E7BC-4D6D-90AA-11B756BB1797 s390x [50] 31741CC4-1A2A-4111-A581-E00B447D2D06 TILE-Gx [50] 2FB4BF56-07FA-42DA-8132-6B139F2026AE x86-64 [50] 77FF5F63-E7B6-4633-ACF4-1565B864C0E6 x86 [50] 8F461B0D-14EE-4E81-9AA9-049B6FB97ABD Root verity signature partition for dm-verity Alpha[50] D46495B7-A053-414F-80F7-700C99921EF8 ARC[50] 143A70BA-CBD3-4F06-919F-6C05683A78BC ARM 32‐bit[50] 42B0455F-EB11-491D-98D3-56145BA9D037 AArch64[50] 6DB69DE6-29F4-4758-A7A5-962190F00CE3 IA-64[50] E98B36EE-32BA-4882-9B12-0CE14655F46A LoongArch 64‐bit[50] 5AFB67EB-ECC8-4F85-AE8E-AC1E7C50E7D0 mips: 32‐bit MIPS big‐endian[50] BBA210A2-9C5D-45EE-9E87-FF2CCBD002D0 mips64: 64‐bit MIPS big‐endian[50] 43CE94D4-0F3D-4999-8250-B9DEAFD98E6E mipsel: 32‐bit MIPS little‐endian[50] C919CC1F-4456-4EFF-918C-F75E94525CA5 mips64el: 64‐bit MIPS little‐endian[50] 904E58EF-5C65-4A31-9C57-6AF5FC7C5DE7 PA-RISC[50] 15DE6170-65D3-431C-916E-B0DCD8393F25 64‐bit PowerPC little‐endian[50] D4A236E7-E873-4C07-BF1D-BF6CF7F1C3C6 64‐bit PowerPC big‐endian[50] F5E2C20C-45B2-4FFA-BCE9-2A60737E1AAF 32‐bit PowerPC[50] 1B31B5AA-ADD9-463A-B2ED-BD467FC857E7 RISC-V 32‐bit[50] 3A112A75-8729-4380-B4CF-764D79934448 RISC-V 64‐bit[50] EFE0F087-EA8D-4469-821A-4C2A96A8386A s390[50] 3482388E-4254-435A-A241-766A065F9960 s390x[50] C80187A5-73A3-491A-901A-017C3FA953E9 TILE-Gx[50] B3671439-97B0-4A53-90F7-2D5A8F3AD47B x86-64[50] 41092B05-9FC8-4523-994F-2DEF0408B176 x86[50] 5996FC05-109C-48DE-808B-23FA0830B676 /usr verity signature partition for dm-verity Alpha[50] 5C6E1C76-076A-457A-A0FE-F3B4CD21CE6E ARC[50] 94F9A9A1-9971-427A-A400-50CB297F0F35 ARM 32‐bit[50] D7FF812F-37D1-4902-A810-D76BA57B975A AArch64[50] C23CE4FF-44BD-4B00-B2D4-B41B3419E02A IA-64[50] 8DE58BC2-2A43-460D-B14E-A76E4A17B47F LoongArch 64‐bit[50] B024F315-D330-444C-8461-44BBDE524E99 mips: 32‐bit MIPS big‐endian[50] 97AE158D-F216-497B-8057-F7F905770F54 mips64: 64‐bit MIPS big‐endian[50] 05816CE2-DD40-4AC6-A61D-37D32DC1BA7D mipsel: 32‐bit MIPS little‐endian[50] 3E23CA0B-A4BC-4B4E-8087-5AB6A26AA8A9 mips64el: 64‐bit MIPS little‐endian[50] F2C2C7EE-ADCC-4351-B5C6-EE9816B66E16 PA-RISC[50] 450DD7D1-3224-45EC-9CF2-A43A346D71EE 64‐bit PowerPC little‐endian[50] C8BFBD1E-268E-4521-8BBA-BF314C399557 64‐bit PowerPC big‐endian[50] 0B888863-D7F8-4D9E-9766-239FCE4D58AF 32‐bit PowerPC[50] 7007891D-D371-4A80-86A4-5CB875B9302E RISC-V 32‐bit[50] C3836A13-3137-45BA-B583-B16C50FE5EB4 RISC-V 64‐bit[50] D2F9000A-7A18-453F-B5CD-4D32F77A7B32 s390[50] 17440E4F-A8D0-467F-A46E-3912AE6EF2C5 s390x[50] 3F324816-667B-46AE-86EE-9B0C0C6C11B4 TILE-Gx[50] 4EDE75E2-6CCC-4CC8-B9C7-70334B087510 x86-64[50] E7BB33FB-06CF-4E81-8273-E543B413E2E2 x86[50] 974A71C0-DE41-43C3-BE5D-5C5CCD1AD2C0 /boot, as an Extended Boot Loader (XBOOTLDR) partition[50][51] BC13C2FF-59E6-4262-A352-B275FD6F7172 Swap partition[50][51] 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F Logical Volume Manager (LVM) partition E6D6D379-F507-44C2-A23C-238F2A3DF928 /home partition[50][51] 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 /srv (server data) partition[50][51] 3B8F8425-20E0-4F3B-907F-1A25A76F98E8 Per‐user home partition[50] 773F91EF-66D4-49B5-BD83-D683BF40AD16 Plain dm-crypt partition[54][55][56] 7FFEC5C9-2D00-49B7-8941-3EA10A5586B7 LUKS partition[54][55][56][57] CA7D7CCB-63ED-4C53-861C-1742536059CC Reserved 8DA63339-0007-60C0-C436-083AC8230908 GNU/Hurd[58] Linux filesystem data[k] 0FC63DAF-8483-4772-8E79-3D69D8477DE4 Linux Swap partition[l] 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F FreeBSD Boot partition[60] 83BD6B9D-7F41-11DC-BE0B-001560B84F0F BSD disklabel partition[60] 516E7CB4-6ECF-11D6-8FF8-00022D09712B Swap partition[60] 516E7CB5-6ECF-11D6-8FF8-00022D09712B Unix File System (UFS) partition[60] 516E7CB6-6ECF-11D6-8FF8-00022D09712B Vinum volume manager partition[60] 516E7CB8-6ECF-11D6-8FF8-00022D09712B ZFS partition[60] 516E7CBA-6ECF-11D6-8FF8-00022D09712B nandfs partition[61] 74BA7DD9-A689-11E1-BD04-00E081286ACF macOSRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3