GUID Partition Table
The GUID Partition Table is a standard for the layout of partition tables of a physical computer storage device, such as a hard disk drive or solid-state drive, using universally unique identifiers, which are also known as globally unique identifiers. Forming a part of the Unified Extensible Firmware Interface standard, it is nevertheless also used for some BIOS systems, because of the limitations of master boot record partition tables, which use 32 bits for logical block addressing of traditional 512-byte disk sectors.
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 firmware interface: the legacy BIOS or the modern EFI.
History
The Master Boot Record partitioning scheme, widely used since the early 1980s, imposed limitations for use of modern hardware. A major deficiency is the limited size of 32 bits for block addresses and related information. For hard disks with 512-byte sectors, the MBR partition table entries allow a maximum size of 2 TiB.In the late 1990s, Intel developed a new partition table format as part of what eventually became the Unified Extensible Firmware Interface., the GUID Partition Table forms a subset of the UEFI specification. 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 9.4 ZB or 8 ZiB.
Features
Like MBR, GPTs use logical block addressing in place of the historical cylinder-head-sector addressing. The protective MBR is stored at LBA 0, the GPT header is in LBA 1, and the GPT header has a pointer to the partition table, typically at LBA 2. The UEFI specification stipulates that a minimum of 16,384 bytes, regardless of sector size, are allocated for the Partition Entry Array. Each entry has a size of 128 bytes. Thus, on a disk with 512-byte sectors, sector number 34 is the first usable sector on the disk.Hard-disk manufacturers are transitioning new products to using 4,096-byte sectors. The first such drives continued to present 512-byte physical sectors to the operating system; degraded performance could result when the drive's physical 4-KiB sector boundaries did not coincide with the 4 KiB logical blocks, clusters and virtual memory pages common in many operating systems and file systems. This was a particular problem on write operations, when the drive is forced to perform two read-modify-write operations to satisfy a single misaligned 4 KiB write operation.
MBR variants
Protective MBR (LBA 0)
For limited backward compatibility, the space of the legacy 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.A single
partition type
of, encompassing the entire GPT drive, 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. Furthermore, GPT-aware OSes may check the protective MBR and if the enclosed partition type is not of type or if there are multiple partitions defined on the target device, the OS may refuse to manipulate the partition table.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. It would result in 16 TiB with 4 KiB sectors, 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.
Hybrid MBR (LBA 0 + GPT)
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.Partition table header (LBA 1)
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.Partition entries (LBA 2–33)
Offset | Length | Contents |
0 | 16 bytes | Partition type GUID |
16 | 16 bytes | Unique partition GUID |
32 | 8 bytes | First LBA |
40 | 8 bytes | Last LBA |
48 | 8 bytes | Attribute flags |
56 | 72 bytes | Partition name |
After the header, the Partition Entry Array describes partitions, using a minimum size of 128 bytes for each entry block. 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. For example, the GUID for an EFI system partition is. 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 Unicode partition name. As is the nature and purpose of GUIDs and as per RFC4122, no central registry is needed to ensure the uniqueness of the GUID partition type designators.
The 64-bit partition table attributes are shared between 48-bit common attributes for all partition types, and 16-bit type-specific attributes:
Bit | Content |
0 | Platform required |
1 | EFI firmware should ignore the content of the partition and not try to read from it |
2 | Legacy BIOS bootable |
3–47 | Reserved for future use |
48–63 | Defined and used by the individual partition type |
Microsoft defines the type-specific attributes for basic data partition as:
Bit | Content |
60 | Read-only |
61 | Shadow copy |
62 | Hidden |
63 | No drive letter |
Google defines the type-specific attributes for Chrome OS kernel as:
Bit | Content |
56 | Successful boot flag |
55–52 | Tries remaining |
51–48 | Priority |
Support by various operating systems
UNIX and Unix-like systems
Windows: 32-bit versions
Windows 7 and earlier do not support UEFI on 32-bit platforms, and therefore do not allow booting from GPT partitions.OS version | Release date | Platform | Read or write support | Boot support | Note |
Windows XP | 2001-10-25 | IA-32 | |||
Windows Server 2003 | 2003-04-24 | IA-32 | |||
Windows Server 2003 SP1 | 2005-03-30 | IA-32 | MBR takes precedence in hybrid configuration. | ||
Windows Vista | 2006-07-22 | IA-32 | MBR takes precedence in hybrid configuration. | ||
Windows Server 2008 | 2008-02-27 | IA-32 | MBR takes precedence in hybrid configuration. | ||
Windows 7 | 2009-10-22 | IA-32 | MBR takes precedence in hybrid configuration. | ||
Windows 8 | 2012-08-01 | IA-32 | MBR takes precedence in hybrid configuration. | ||
Windows 8.1 | 2013-08-27 | IA-32 | MBR takes precedence in hybrid configuration. | ||
Windows 10 | 2015-07-29 | IA-32 | MBR takes precedence in hybrid configuration. |
Windows: 64-bit versions
Limited to 128 partitions per disk.OS version | Release date | Platform | Read and write support | Boot support | Note |
Windows XP Professional x64 Edition Windows Server 2003 | 2005-04-25 | x64 | MBR takes precedence in hybrid configuration. | ||
Windows Server 2003 | 2005-04-25 | IA-64 | MBR takes precedence in hybrid configuration. | ||
Windows Vista | 2006-07-22 | x64 | MBR takes precedence in hybrid configuration. | ||
Windows Server 2008 | 2008-02-27 | x64 | MBR takes precedence in hybrid configuration. | ||
Windows Server 2008 | 2008-02-27 | IA-64 | MBR takes precedence in hybrid configuration. | ||
Windows 7 | 2009-10-22 | x64 | MBR takes precedence in hybrid configuration. | ||
Windows Server 2008 R2 | 2009-10-22 | IA-64 | MBR takes precedence in hybrid configuration. | ||
Windows 8 Windows Server 2012 | 2012-08-01 | x64 | MBR takes precedence in hybrid configuration. | ||
Windows 8.1 | 2013-08-27 | x64 | MBR takes precedence in hybrid configuration. | ||
Windows 10 | 2015-07-29 | x64 | MBR takes precedence in hybrid configuration. | ||
Windows Server 2016 | 2016-10-12 | x64 | MBR takes precedence in hybrid configuration. |
Partition Type GUIDs
Each partition has a "partition type GUID" that identifies the type of the partition 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 |
rowspan="7" | Unused entry | |
MBR partition scheme | - | |
EFI System partition | - | |
BIOS boot partition | - | |
Intel Fast Flash partition | - | |
Sony boot partition | - | |
Lenovo boot partition | - | |
Windows | Microsoft Reserved Partition | |
Windows | Basic data partition | |
Windows | Logical Disk Manager metadata partition | |
Windows | Logical Disk Manager data partition | |
Windows | Windows Recovery Environment | |
Windows | IBM General Parallel File System partition | |
Windows | Storage Spaces partition | |
Windows | Storage Replica partition | |
HP-UX | Data partition | |
HP-UX | Service partition | |
Linux | Linux filesystem data | |
Linux | RAID partition | |
Linux | Root partition | |
Linux | Root partition | |
Linux | Root partition | |
Linux | Root partition | |
Linux | partition | |
Linux | Swap partition | |
Linux | Logical Volume Manager partition | |
Linux | partition | |
Linux | partition | |
Linux | Plain dm-crypt partition | |
Linux | LUKS partition | |
Linux | Reserved | |
FreeBSD | Boot partition | |
FreeBSD | Data partition | |
FreeBSD | Swap partition | |
FreeBSD | Unix File System partition | |
FreeBSD | Vinum volume manager partition | |
FreeBSD | ZFS partition | |
macOS Darwin | Hierarchical File System Plus partition | |
macOS Darwin | Apple APFS container APFS FileVault volume container | |
macOS Darwin | Apple UFS container | |
macOS Darwin | ZFS | |
macOS Darwin | Apple RAID partition | |
macOS Darwin | Apple RAID partition, offline | |
macOS Darwin | Apple Boot partition | |
macOS Darwin | Apple Label | |
macOS Darwin | Apple TV Recovery partition | |
macOS Darwin | Apple Core Storage Container HFS+ FileVault volume container | |
macOS Darwin | SoftRAID_Status | |
macOS Darwin | SoftRAID_Scratch | |
macOS Darwin | SoftRAID_Volume | |
macOS Darwin | SoftRAID_Cache | |
Solaris illumos | Boot partition | |
Solaris illumos | Root partition | |
Solaris illumos | Swap partition | |
Solaris illumos | Backup partition | |
Solaris illumos | partition | |
Solaris illumos | partition | |
Solaris illumos | partition | |
Solaris illumos | Alternate sector | |
Solaris illumos | Reserved partition | |
Solaris illumos | Reserved partition | |
Solaris illumos | Reserved partition | |
Solaris illumos | Reserved partition | |
Solaris illumos | Reserved partition | |
NetBSD | Swap partition | |
NetBSD | FFS partition | |
NetBSD | LFS partition | |
NetBSD | RAID partition | |
NetBSD | Concatenated partition | |
NetBSD | Encrypted partition | |
Chrome OS | Chrome OS kernel | |
Chrome OS | Chrome OS rootfs | |
Chrome OS | Chrome OS future use | |
Container Linux by CoreOS | /usr partition | |
Container Linux by CoreOS | Resizable rootfs | |
Container Linux by CoreOS | OEM customizations | |
Container Linux by CoreOS | Root filesystem on RAID | |
Haiku | Haiku BFS | |
MidnightBSD | Boot partition | |
MidnightBSD | Data partition | |
MidnightBSD | Swap partition | |
MidnightBSD | Unix File System partition | |
MidnightBSD | Vinum volume manager partition | |
MidnightBSD | ZFS partition | |
Ceph | Journal | |
Ceph | dm-crypt journal | |
Ceph | OSD | |
Ceph | dm-crypt OSD | |
Ceph | Disk in creation | |
Ceph | dm-crypt disk in creation | |
Ceph | Block | |
Ceph | Block DB | |
Ceph | Block write-ahead log | |
Ceph | Lockbox for dm-crypt keys | |
Ceph | Multipath OSD | |
Ceph | Multipath journal | |
Ceph | Multipath block | |
Ceph | Multipath block | |
Ceph | Multipath block DB | |
Ceph | Multipath block write-ahead log | |
Ceph | dm-crypt block | |
Ceph | dm-crypt block DB | |
Ceph | dm-crypt block write-ahead log | |
Ceph | dm-crypt LUKS journal | |
Ceph | dm-crypt LUKS block | |
Ceph | dm-crypt LUKS block DB | |
Ceph | dm-crypt LUKS block write-ahead log | |
Ceph | dm-crypt LUKS OSD | |
OpenBSD | Data partition | |
QNX | Power-safe file system | |
Plan 9 | Plan 9 partition | |
VMware ESX | vmkcore | |
VMware ESX | VMFS filesystem partition | |
VMware ESX | VMware Reserved | |
Android-IA | Bootloader | |
Android-IA | Bootloader2 | |
Android-IA | Boot | |
Android-IA | Recovery | |
Android-IA | Misc | |
Android-IA | Metadata | |
Android-IA | System | |
Android-IA | Cache | |
Android-IA | Data | |
Android-IA | Persistent | |
Android-IA | Vendor | |
Android-IA | Config | |
Android-IA | Factory | |
Android-IA | Factory | |
Android-IA | Fastboot / Tertiary | |
Android-IA | OEM | |
Android 6.0+ ARM | Android Meta | |
Android 6.0+ ARM | Android EXT | |
Open Network Install Environment | Boot | |
Open Network Install Environment | Config | |
PowerPC | PReP boot | |
freedesktop.org OSes | Shared boot loader configuration | |
Atari TOS | Basic data partition | |
VeraCrypt | Encrypted data partition |
See Also
- Advanced Active Partition
- Apple Partition Map
- Boot Engineering Extension Record
- BSD disklabel
- Device Configuration Overlay
- Extended Boot Record
- Host Protected Area
- Partition alignment
- Rigid Disk Block
- Volume Table of Contents
External Links
- Microsoft TechNet:
- Microsoft TechNet:
- Microsoft TechNet:
- Microsoft:
- Microsoft Technet: A bit MS-specific but good figures relate GPT to older MBR format and protective-MBR, shows layouts of complete disks, and how to interpret partition-table hexdumps.
- Apple Developer Connection: