Fact-checked by Grok 2 weeks ago

GUID Partition Table

The GUID Partition Table (GPT) is a standard partitioning scheme for laying out the partition table on disk drives and other block storage devices, which employs 128-bit globally unique identifiers (GUIDs) to define partitions and relies on 64-bit to support vast storage capacities. Defined in the Extensible Firmware Interface (EFI) specification version 1.10 and released by on December 1, 2002, GPT was developed as a modern alternative to the legacy partitioning system to address its limitations in handling large disks and multiple partitions. It was subsequently incorporated into the specifications starting from version 2.0 in 2006, becoming integral to UEFI-based processes. GPT offers significant advantages over MBR, including support for disk sizes up to 264 logical blocks (approximately 9.4 zettabytes, assuming 512-byte sectors), the ability to define up to 128 partitions by default (expandable via software), and enhanced data integrity through primary and backup partition tables located at the disk's beginning and end, respectively. Each partition entry includes a unique GUID for identification, a type GUID specifying its purpose (e.g., EFI System Partition), start and end LBAs, 64-bit attributes for protection and usage flags, and a 36-character Unicode name for human-readable labeling. The scheme incorporates CRC32 checksums in both the GPT header and partition entry array to detect corruption, ensuring reliable recovery using the backup structures if the primary fails. For backward compatibility with legacy BIOS systems, GPT disks include a protective MBR at LBA 0 that marks the entire disk as a single invalid partition beyond 2 terabytes. In practice, is the required partition style for UEFI-based installations of , such as and later, where it enables booting from disks larger than 2 terabytes and supports an formatted as FAT32 (100 MB minimum, 260 MB recommended for 4K sector drives, typically 250–500 MB). It also facilitates advanced features like partition alignment to optimize performance on solid-state drives and allows for dynamic resizing without data loss in compatible tools. Widely adopted in enterprise storage, consumer PCs, and servers since the mid-2000s, GPT has become the for new systems, particularly those exceeding MBR's 2-terabyte limit per disk.

History and Development

Origins in UEFI

The GUID Partition Table (GPT) originated as a key component of Intel's Extensible Firmware Interface (EFI) specification, designed to replace the aging Master Boot Record (MBR) partitioning system. Development of GPT began in the early 2000s, with its initial definition appearing in the EFI 1.10 specification released by Intel on December 1, 2002. This effort was led by Intel's engineering team to enable EFI-compliant systems to handle modern storage demands, including bootable disk devices with enhanced partitioning capabilities. The primary motivation for GPT's creation was to address the MBR's inherent constraints, such as its reliance on 32-bit , which limited addressable disk capacity to 2 tebibytes (), and its support for only four primary partitions per disk. By employing 64-bit and GUID-based identifiers for partitions, GPT supported up to 128 primary partitions by default (extensible further) and disk sizes up to 9.4 zettabytes, providing greater scalability and reliability through redundant primary and backup structures with CRC32 integrity checks. 's work on GPT was conducted in tandem with the broader to facilitate seamless firmware-to-operating-system transitions on Intel platforms. Following Intel's contribution of the EFI specification to the industry, the Unified EFI Forum was established on July 25, 2005, to standardize and advance it. The forum's inaugural 2.0 specification, released on January 31, 2006, incorporated and formalized GPT as the recommended partitioning scheme for systems. Significant input during GPT's refinement came from to ensure compatibility with Windows, including support starting with for EFI-based booting. Apple adopted in 2006 for its newly introduced Intel-based Macintosh computers, marking a shift from the proprietary to align with EFI/ standards.

Evolution and Standards

Following its initial definition within the Extensible Firmware Interface (EFI) framework, the GUID Partition Table (GPT) underwent significant maturation through updates to the specification. The 2.3 specification, released in 2009, introduced enhancements to structures, including improved error handling mechanisms. These updates strengthened 's robustness against during boot processes and disk operations by mandating checksum validation across primary and backup components. formally announced support for in 2005 as part of preparations for and subsequent releases, providing native booting and data access on 64-bit systems, which spurred the development of protective MBR schemes to ensure compatibility with legacy tools. As of 2025, serves as the default partitioning scheme for UEFI booting, with the UEFI Forum's ongoing updates—such as those in the 2.11 specification released in late 2024—enhancing compatibility with NVMe storage devices through dedicated pass-through protocols and accommodating larger sector sizes like 4K native formats via extended block I/O media attributes.

Core Concepts and Features

Comparison to MBR

The (GPT) represents a significant evolution from the (MBR) partitioning scheme, addressing key limitations in capacity, flexibility, and reliability for modern storage devices. While the MBR scheme, introduced with early PC systems, relies on 32-bit (LBA), which restricts disk sizes to a maximum of 2 tebibytes (TiB) assuming 512-byte sectors. Additionally, MBR supports only four primary s (or three primary plus one extended for logical s), and it lacks any built-in for the table, making it vulnerable to corruption and data loss. In contrast, GPT employs 64-bit LBA, enabling theoretical disk sizes up to 9.4 zettabytes (ZB), far exceeding current storage needs. It accommodates up to 128 s by default through its entry array (expandable based on available space), and includes redundant primary and backup tables and headers for enhanced integrity.
AspectMBRGPT
Addressing Width32-bit LBA64-bit LBA
Maximum Disk Size2 9.4 ZB
Partition Limit4 primary (or 3 + extended)128 default (expandable)
RedundancyNone (single table)Primary and backup tables/headers
In terms of partition addressing, MBR originally used (CHS) geometry for compatibility with early hard drives but transitioned to 32-bit LBA for starting and size fields in its entries; however, this still imposes the 2 limit. , by design, employs pure 64-bit LBA addressing, with each defined by a starting LBA of 0 or higher and an ending LBA, allowing seamless support for massive drives without legacy geometric constraints. The boot processes also differ fundamentally: MBR executes boot code directly from LBA 0 on legacy systems, loading the from the active . , integrated with the Unified Extensible Firmware Interface (), relies on to parse the table and discover bootable partitions via GUID identifiers, bypassing MBR-style boot sectors. To ensure compatibility with legacy tools, disks include a Protective MBR at LBA 0 that marks the entire disk as a single incompatible .

Key Advantages and Limitations

The GUID Partition Table () offers enhanced fault tolerance through redundant backup copies of both the primary header and partition entry array, located at the beginning and end of the disk, which allow recovery from corruption in one set by referencing the other. This redundancy addresses a key weakness in older schemes like the (), which lacks such backups and is limited to 2 TiB disk sizes, whereas supports up to 9.4 zettabytes. GPT employs globally unique identifiers (GUIDs) for each and disk, ensuring unambiguous identification across multiple drives without the risk of conflicts that can occur in multi-disk configurations using non-unique labels. It also facilitates advanced features, such as the (MSR), which reserves space for system-specific uses like dynamic disk conversions, typically allocating 128 on disks of 16 or larger. Despite these benefits, GPT requires UEFI firmware for native booting, as legacy BIOS systems cannot directly boot from it and necessitate hybrid configurations with a protective MBR or a dedicated BIOS boot partition. This limitation leads to incompatibility with very old hardware, such as 32-bit Windows XP or earlier, which can only access the protective MBR and ignore the GPT structures. Additionally, GPT introduces larger overhead, reserving at least 34 logical block addresses (LBAs) for the primary structures—including the protective MBR (1 LBA), header (1 LBA), and partition entry array (32 LBAs for 128 entries)—reducing usable space on small disks. In practical use cases, excels in environments like servers, arrays, and disks exceeding 2 , where its support for up to 128 partitions by default and vast addressing capacity enable efficient large-scale storage management. However, it is less suitable for bootable USB drives in environments, which often require MBR for broad compatibility. Performance impacts from GPT are minimal, though the inclusion of CRC32 checksums for verifying header and partition integrity adds a slight computational overhead during disk reads and writes to ensure data consistency.

Disk Layout and Structure

Protective and Hybrid MBR

The GUID Partition Table (GPT) incorporates compatibility mechanisms at the disk's initial sectors to interact with legacy Master Boot Record (MBR) systems, primarily through the Protective MBR and, in specific scenarios, the Hybrid MBR. The Protective MBR occupies Logical Block Address (LBA) 0 and consists of a single partition entry of type 0xEE, designated as the GPT Protective partition, which spans the entire disk capacity or up to 2 TiB if the disk is larger. This structure, including boot code bytes 0-439 (unused by UEFI), a zeroed disk signature at bytes 440-443, a non-bootable indicator, starting CHS of 0x000200, ending CHS representing the last block or 0xFFFFFF if unrepresentable, starting LBA of 1 (pointing to the GPT header), size in LBAs as the disk size minus one or 0xFFFFFFFF for larger disks, and a signature of 0xAA55 at bytes 510-511, serves to shield the subsequent GPT data structures from modification by GPT-unaware tools or operating systems that assume an MBR layout. By presenting the disk as a single unknown partition, it prevents legacy utilities like MS-DOS FDISK from interpreting the disk as empty or repartitioning it, thereby preserving the integrity of the GPT header at LBA 1 and the partition entries that follow in LBAs 2 through 33. In contrast, a MBR modifies the Protective MBR by retaining the type 0xEE entry while adding up to three additional primary MBR partitions that map to corresponding GPT partitions, enabling BIOS-based booting on GPT disks in dual-boot environments such as older Windows installations alongside UEFI-aware systems. These additional entries use MBR codes (e.g., 0x07 for or 0xAF for Apple HFS+) and align with the starting and ending LBAs of selected GPT partitions, typically the first, second, or third, to allow legacy bootloaders to access essential partitions like the system or without recognizing the full GPT structure. Hybrid MBRs are particularly common in setups requiring compatibility with pre-UEFI Windows versions on GPT-formatted disks larger than 2 . Tools such as gdisk (GPT fdisk) facilitate the creation of both Protective and Hybrid MBRs; for instance, gdisk initializes a standard Protective MBR by default on new GPT disks, while entering recovery mode (via the 'r' command) and selecting the hybrid option ('h') allows specification of up to three GPT partition numbers to include in the MBR, followed by writing changes to LBA 0. The fdisk utility from util-linux can also generate basic Protective MBRs during GPT creation, though it lacks native support for hybrid configurations. Following the MBR at LBA 0, LBAs 1 through 33 are reserved for core GPT elements, ensuring no overlap with MBR data. Misconfiguration of Protective or Hybrid MBRs poses significant risks, including from misalignment between MBR and GPT partition boundaries, as GPT-unaware tools may overwrite protective entries or ignore the full disk layout, leading to corruption of GPT metadata. Hybrid MBRs are especially prone to issues, as changes to GPT partitions via unaware utilities can desynchronize the MBR mappings, rendering boot paths unreliable or causing partition table inconsistencies. Experts recommend avoiding Hybrid MBRs when possible, favoring pure with booting to mitigate these hazards.

Primary GPT Header

The Primary GPT Header is a critical data structure in the GUID Partition Table (GPT) layout, located at Logical Block Address (LBA) 1 on the disk, immediately following the protective (MBR). This header occupies a full 512-byte logical block and serves as the primary metadata descriptor for the disk, defining its overall structure, validation mechanisms, and pointers to other GPT components. It begins with an 8-byte signature "EFI PART" (hexadecimal value 0x5452415020494645) to identify it as an EFI-compatible GPT header. Key fields within the header provide essential disk information and integrity checks. The revision field, a 32-bit unsigned integer at offset 8, specifies the GPT version, with 1.0 (0x00010000) being the standard for UEFI 2.10. The header size field at offset 12, also a 32-bit unsigned integer, indicates the number of bytes used in the header (92 bytes minimum and typical), while the remaining bytes up to 512 are reserved and zero-padded. For self-validation, a 32-bit CRC32 checksum field at offset 16 ensures header integrity; this checksum is computed by setting the CRC32 field to zero and then calculating the CRC32 value over the first 92 bytes (HeaderSize) of the header. The current LBA field (MyLBA) at offset 24, a 64-bit unsigned integer, records the position of this primary header (always 1), and the alternate LBA field (AlternateLBA) at offset 32 points to the backup header's location at the disk's last LBA. The disk GUID, a 128-bit globally (16 bytes) at offset 56, uniquely identifies the disk and is generated during formatting to prevent conflicts in multi-disk environments. Details about the partition entry array follow: the starting LBA (PartitionEntryLBA) at offset 72, a 64-bit unsigned , typically set to 2; the number of partition entries (NumberOfPartitionEntries) at offset 80, a 32-bit unsigned with a default of 128 in many implementations; and the size of each partition entry (SizeOfPartitionEntry) at offset 84, a 32-bit unsigned fixed at 128 bytes. A separate CRC32 field at offset 88 validates the entire partition entry array. The following table summarizes the Primary GPT Header's field layout based on the UEFI 2.10 specification:
OffsetLength (bytes)Field NameTypeDescription
08SignatureASCII"EFI PART" (0x5452415020494645) for identification.
84RevisionUINT32GPT version, e.g., 1.0 (0x00010000).
124HeaderSizeUINT32Size of header in bytes (92 typical).
164HeaderCRC32UINT32CRC32 checksum of header (self-validating).
204ReservedUINT32Must be zero.
248MyLBAUINT64LBA of this header (1 for primary).
328AlternateLBAUINT64LBA of backup header (disk's last LBA).
408FirstUsableLBAUINT64First logical block address that may be used by a partition for data (typically 34 for 512-byte sectors).
488LastUsableLBAUINT64Last LBA available for partitions.
5616DiskGUIDGUID (128-bit)Unique disk identifier.
728PartitionEntryLBAUINT64Starting LBA of partition entry array (typically 2).
804NumberOfPartitionEntriesUINT32Number of entries (default 128).
844SizeOfPartitionEntryUINT32Size per entry (128 bytes).
884PartitionEntryArrayCRC32UINT32CRC32 of the partition entry array.
92–511VariableReserved-Zero-padded to block size.

Primary Partition Entries

The primary partition entry array in a GUID Partition Table (GPT) consists of an ordered collection of partition entry structures that define the individual partitions on the disk. This array follows immediately after the primary GPT header and is referenced by the PartitionEntryLBA field in that header, which specifies its starting logical block address (LBA). For disks using 512-byte logical sectors, the array typically occupies LBAs 2 through 33, accommodating up to 128 entries while leaving space for the protective MBR and header. Each entry in the array is a fixed-size structure of 128 bytes, with the array supporting a default of 128 entries, though the GPT header's NumberOfPartitionEntries field can specify up to 2^64 - 1 entries in theory. Unused entries beyond the last defined partition must be zero-filled to ensure consistency and prevent misinterpretation by disk utilities. The total size of the array is calculated as the product of the number of entries and the entry size (minimum 128 bytes), resulting in a minimum allocation of 16,384 bytes (or 4 KiB when considering aligned sectors, but precisely 16 KiB for 128 entries). This space reservation allows for extensibility, as the entry size can be increased in multiples of 128 bytes (e.g., 128 × 2^n) to support future enhancements without altering the core layout. The fields within each 128-byte partition entry provide detailed for a single , enabling precise disk management. These include:
  • Partition Type GUID (bytes 0-15): A 128-bit (16-byte) globally (GUID) that specifies the partition's content type, such as a filesystem or reserved space; a zeroed GUID indicates an unused entry.
  • Unique Partition GUID (bytes 16-31): Another 128-bit GUID that uniquely identifies the partition across systems, used for referencing in bootloaders and filesystem tools.
  • Starting LBA (bytes 32-39): A 64-bit little-endian unsigned denoting the first logical of the partition.
  • Ending LBA (bytes 40-47): A 64-bit little-endian unsigned specifying the last logical of the partition, inclusive.
  • Attributes (bytes 48-55): A 64-bit bitfield defining partition properties and behaviors (detailed below).
  • Partition Name (bytes 56-127): A 72-byte null-padded UTF-16-LE string (up to 36 characters) for a human-readable label.
Any bytes beyond 128 in an entry (if the size is expanded) are reserved and must be zero. The attributes field is a 64-bit value where specific bits control partition handling by firmware and operating systems. Bit 0, if set, marks the partition as required (platform-critical, not to be modified or removed). Bit 1 indicates no block I/O protocol support (preventing direct access via EFI protocols). Bit 2 designates the partition as legacy BIOS bootable, which UEFI boot managers ignore but legacy systems may use; this bit is often leveraged to hide partitions from modern OSes. Bits 3-47 are reserved and must be zero. Bits 48-63 are reserved for GUID-specific usage defined by the partition type owner, allowing customization. For example, in Linux environments following the Discoverable Partitions Specification, bit 59 (within bits 56-63) serves as a growth hint, signaling automatic filesystem expansion to fill the partition during mounting if not marked read-only. For data integrity, the entire primary partition entry array is protected by a CRC32 checksum stored in the primary GPT header's PartitionEntryArrayCRC32 field. This checksum is computed over the full array size (number of entries × entry size) starting from the array's LBA, using the IEEE 802.3 polynomial. Unlike individual entries, there are no per-entry checksums; any corruption in the array invalidates the header's CRC, prompting recovery from backups. Tools modifying entries must recompute and update this CRC, followed by the header's own CRC.

Backup Structures

The backup GPT header is a redundant copy of the primary GPT header, located at the last logical block address (LBA) of the disk, which is LBA equal to the total number of LBAs minus one. This header mirrors the contents of the primary header at LBA 1, including fields such as the disk GUID, partition entry array LBA, and CRC32 checksums, but with key adjustments: its "My LBA" field points to the last LBA, and its "Alternate LBA" field points to LBA 1 to indicate the primary header's location. These reverse pointers facilitate navigation between the primary and backup structures for validation and recovery purposes. The backup entry is an identical duplicate of the primary entry , containing the same set of up to 128 entries (each 128 bytes in size) that describe the disk's partitions, including their GUIDs, starting and ending LBAs, and attributes. This is positioned immediately after the last usable LBA and before the backup GPT header, spanning a minimum of 16,384 bytes regardless of the underlying sector size. The entries maintain the same sequential order as in the primary , ensuring without reversal, which allows for straightforward mirroring and integrity checks via CRC32 validation. In the event of corruption to the primary header or entries—such as due to disk errors or incomplete writes—UEFI firmware or partitioning tools can detect the issue through CRC32 checksum failures and switch to the backup structures for recovery. The recovery process involves validating the backup by comparing the disk GUID in both headers; if they match, the backup data is used to rebuild the primary structures, restoring the full partition layout. This redundancy enhances fault tolerance, particularly for large disks where partial failures are more likely. The backup structures collectively occupy the last portion of the disk, typically the final 33 or more LBAs for 512-byte logical sectors (one for the header plus at least 32 for the entry array), leaving any preceding space available for the final partition. For larger sector sizes like 4,096 bytes, the footprint shrinks to about six LBAs (one header plus four for entries), with positions adjusted accordingly via the "First Usable LBA" and "Last Usable LBA" fields in the headers. On very small disks with fewer than 34 LBAs for 512-byte sectors (or equivalent for other sizes), implementing a full GPT layout becomes infeasible, as there is insufficient space to accommodate both primary and backup components without overlap.

Partition Identification

GUID Usage

The Globally Unique Identifier (GUID), also known as a (UUID), is a 128-bit value employed in the GUID Partition Table (GPT) to provide unique identification for both the disk and its individual . This format adheres to the structure defined in RFC 4122, consisting of 16 bytes that are typically represented in a canonical textual form as 32 hexadecimal digits grouped into five sequences separated by hyphens: 8-4-4-4-12 (for example, 12345678-1234-1234-1234-123456789ABC). In GPT, all GUIDs follow the EFI GUID conventions, ensuring compatibility with firmware and operating systems that support the standard. The disk GUID serves as a for the entire GPT disk structure and is stored in the primary GPT header at byte offset 56, occupying 16 bytes. It is generated randomly during disk formatting using the version 4 algorithm specified in RFC 4122, which relies on pseudo-random or high-quality to produce a value compliant with the standard's format and variant bits. This random generation ensures the disk GUID remains unique across different systems and storage devices, facilitating reliable disk recognition in multi-disk environments without requiring a central . Tools such as gdisk, designed specifically for GPT manipulation, generate fresh random disk GUIDs using secure methods when creating or modifying partition tables. Each partition entry in the GPT includes a unique partition GUID at byte offset 16 within the 128-byte entry , spanning 16 bytes. This per-partition identifier is assigned at the time of partition creation and remains associated with that specific partition throughout its lifecycle, enabling precise tracking even if partitions are copied or moved between disks. Operating systems leverage the partition GUID for tasks such as automated mounting— for instance, uses it as the PARTUUID in /etc/ configurations to reference partitions independently of device names— and in scripting for volume management and automation. The vast namespace of GUIDs, with 2^{128} possible values (approximately 3.4 \times 10^{38}), provides an extremely low probability of collisions, making duplicates negligible in practical scenarios even with widespread generation. Partition tools like Parted and gdisk employ secure random number generators to produce these GUIDs, further minimizing any risk of repetition. Although GUIDs are stored and transmitted in without , their design prioritizes non-sensitive identification rather than confidentiality, rendering them adequate for their intended role in disk and partition management.

Standard Partition Types

The GUID Partition Table () employs 128-bit Globally Unique Identifiers (GUIDs) to classify partitions based on their intended contents and usage, enabling operating systems and to recognize and handle them appropriately. These partition type GUIDs are stored in the partition entry and allow for precise identification without relying on signatures alone. While the specification defines a minimal set of standard types for broad compatibility, most are vendor-specific, reflecting the extensible nature of GPT that avoids the need for a central authority. The following table lists approximately 20 common predefined partition type GUIDs, drawn from the UEFI standard and major operating system vendors. Each entry includes the GUID, a descriptive name, and a brief explanation of its purpose. These examples illustrate the diversity of types for boot, data, and system partitions across platforms.
GUIDNameDescription
00000000-0000-0000-0000-000000000000Unused EntryMarks an unused or free partition entry in the GPT table.
C12A7328-F81F-11D2-BA4B-00A0C93EC93BEFI System PartitionContains UEFI boot loaders, drivers, and utilities; formatted as FAT32.
024DEE41-33E7-11D3-9D69-0008C781F39FLegacy MBRIndicates a partition compatible with legacy Master Boot Record (MBR) schemes.
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7Microsoft Basic DataGeneral-purpose data partition used by Windows for file storage, typically NTFS-formatted.
E3C9E316-0B5C-4DB8-817D-F92DF00215AEMicrosoft ReservedReserved space on GPT disks for Windows partition management; not formatted or mountable.
DE94BBA4-06D1-4D40-A16A-BFD50179D6ACWindows Recovery EnvironmentStores tools for Windows Recovery Environment (WinRE), such as startup repair utilities.
0FC63DAF-8483-4772-8E79-3D69D8477DE4Linux Filesystem DataGeneric type for Linux data partitions, supporting file systems like ext4 or XFS.
0657FD6D-A4AB-43C4-84E5-0933C84B4F4FLinux SwapDedicated swap space for virtual memory in Linux systems.
4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709Linux Root (x86-64)Discoverable root partition (/) for 64-bit x86 Linux installations.
933AC7E1-2EB4-4F13-B844-0E14E2AEF915Linux /homeDiscoverable partition for user home directories in Linux.
3B8F8425-20E0-4F3B-907F-1A25A76F98E8Linux /srvDiscoverable partition for server data in Linux environments.
21686148-6449-6E6F-744E-656564454649BIOS Boot PartitionUnformatted space for GRUB bootloader on BIOS/GPT hybrid systems.
48465300-0000-11AA-AA11-00306543ECACApple HFS+Hierarchical File System Plus partition used in older macOS installations.
7C3457EF-0000-11AA-AA11-00306543ECACApple APFS ContainerContainer for Apple File System volumes in modern macOS.
E6D6D379-F507-44C2-A23C-238F2A3DF928Linux LVMLogical Volume Manager partition for dynamic storage in Linux.
AF9B60A0-1431-4F62-BC68-3311714A69ADMicrosoft LDM DataData partition on dynamic disks using Logical Disk Manager (LDM).
5808C8AA-7E8F-42E0-85D2-E1E90434CFB3Microsoft LDM MetadataMetadata partition for Logical Disk Manager on dynamic Windows disks.
AF9B60A0-1431-40B8-A267-2817BE8F6B63Apple Core StorageUsed for Fusion Drive or logical volume groups in macOS.
9F4F4E3D-0000-11AA-AA11-00306543ECACApple UFSUnix File System partition used in legacy Apple systems.
FE3A2A5D-4F32-41A7-B725-ACCC3285A309Chrome OS KernelPartition for Chrome OS kernel images.
CA7D7CCB-63ED-4C53-8615-17E458844511Linux LUKSEncrypted partition using Linux Unified Key Setup (LUKS).
GPT's design supports extensibility by allowing vendors and developers to define custom GUIDs without collision risks, as each is generated to be globally unique. This enables support for specialized uses, such as arrays or encrypted containers, while maintaining with the core standard.

Operating System Support

Unix-like Systems

Unix-like systems have provided robust support for the GUID Partition Table (GPT) since the mid-2000s, enabling efficient management of large-capacity disks across various distributions and variants. In , the has included native GPT support since version 2.6, allowing for the recognition and utilization of GPT-structured disks without additional modules. This integration facilitates the handling of disk sizes exceeding 2 , leveraging 64-bit (LBA) to address sectors beyond the limitations of older MBR schemes. Tools such as fdisk (from ) support GPT creation and manipulation alongside MBR, while parted offers advanced partitioning capabilities including resizing and alignment for GPT layouts. Specialized utilities like gdisk (part of GPT fdisk) provide GPT-specific operations, such as converting MBR to GPT and verifying partition integrity, and libblkid enables GUID detection for automated filesystem identification. FreeBSD introduced GPT support in version 7.0-RELEASE in 2008, marking a shift toward modern partitioning for larger drives and UEFI booting compatibility. The gpart utility serves as the primary tool for creating, modifying, and bootstrapping GPT partitions on GEOM providers, supporting schemes like GPT alongside legacy formats. In illumos-based systems such as OpenIndiana and OmniOS (derived from Solaris), GPT is managed through the format command and fdisk, which handle EFI-labeled disks and allow partitioning up to 128 slices, though typically limited to seven usable partitions for compatibility. These tools ensure seamless integration with ZFS pools and other filesystems on GPT disks. macOS, as a Unix-like derivative, has used GPT as the default partitioning scheme since Mac OS X 10.4 Tiger (2005) for Intel-based systems, with full booting support on EFI hardware. The Disk Utility application provides a graphical interface for GPT operations, including formatting, partitioning, and conversion to schemes like APFS, which employs specific GUIDs for container volumes (e.g., the APFS Container Scheme GUID). Across these systems, common features include support for native sectors to optimize performance on advanced storage devices, integration with software (e.g., mdadm on for assembling arrays on GPT partitions), and booting mechanisms like GRUB2 for (which embeds GPT-aware modules) or OpenFirmware on PowerPC-based macOS variants.) However, limitations persist in older configurations: pre-2.6 kernels may lack full 64-bit LBA support, restricting GPT functionality to 32-bit addressing and thus capping usable disk space at around 2 TiB. Additionally, ZFS on requires GPT partitioning for pools exceeding 2 TiB to avoid MBR size constraints during vdev creation.

Microsoft Windows

Microsoft Windows provides native support for the GUID Partition Table (GPT) starting with 64-bit editions of and later versions, enabling full read/write operations on GPT disks for data storage and partitioning. These editions require firmware for booting from GPT disks, as legacy does not support GPT boot directly. Users can manage GPT disks using built-in tools such as the Disk Management console in Computer Management or the diskpart command-line utility, which allow creating, resizing, and converting partitions without third-party software. In contrast, 32-bit editions of Windows, including Windows 7 and later, offer read/write access to GPT disks for data purposes but do not support booting from them natively. For legacy BIOS systems, a hybrid MBR configuration can provide limited compatibility, allowing the first few partitions to be accessed while protecting the GPT structures. Without GPT or workarounds, 32-bit Windows is restricted to disks under 2 tebibytes (TiB) due to Master Boot Record (MBR) limitations. Booting on GPT disks in Windows relies on the , which loads from the (ESP)—a dedicated FAT32-formatted partition on the GPT disk that stores boot loaders and firmware files. This setup ensures compatibility with mode, and since , it integrates with Secure Boot to verify the integrity of boot components against . For advanced management, and later include the MBR2GPT.exe tool, which converts an existing MBR disk to GPT in-place without data loss or reinstallation, facilitating upgrades to booting. PowerShell cmdlets, such as Get-Partition and Get-Disk, enable scripting for querying and manipulating GPT partitions, including retrieving partition styles and GUIDs. As of 2025, is mandatory for installations on personal computers with disks exceeding 2 TiB, as MBR cannot utilize the full capacity, and / is required for compliance with system prerequisites like Secure Boot and 2.0. editions, such as those for processors, default to GPT partitioning for the operating system, aligning with requirements on ARM-based devices.

Other Platforms

The Unified Extensible Firmware Interface (UEFI) specification, starting from version 2.0, incorporates support for the GUID Partition Table (GPT) as the standard layout for disk partitioning, enabling firmware to discover and boot from GPT-structured volumes in native mode. For systems requiring legacy BIOS compatibility, the Compatibility Support Module (CSM) in UEFI firmware allows GPT disks to be booted using traditional BIOS emulation, often in conjunction with hybrid MBR setups or specific bootloaders. In embedded and real-time operating systems, employs partitioning for eMMC storage devices, a practice established since Android 4.3 to accommodate dynamic partition layouts and verified boot processes. Chrome OS defaults to for its disk layout, utilizing custom partition types and attributes within the table to support verified boot and on internal storage. Firmware platforms like integrate support through payloads such as , which recognizes GPT labels and enables booting on large-capacity drives exceeding MBR limits. Among other operating systems, provides full GPT support via its EFI bootloader, allowing installation and booting from GPT disks as a core feature since its R1/beta1 release. offers partial GPT recognition, primarily for reading partitions like filesystems, with ongoing development for fuller integration; NTFS support in relies on user-space tools like NTFS-3G for compatibility with GPT-formatted volumes. Gaming consoles, such as the Xbox Series X, employ a custom variant of GPT for internal NVMe SSD storage, incorporating proprietary partition GUIDs to manage system, game, and OS data while maintaining compatibility with expansion cards. Resource-constrained devices, common in embedded and IoT environments, often restrict GPT implementations to 512-byte logical sectors to align with legacy hardware limitations, despite support for larger physical sectors like 4 KB in the specification. Proprietary systems frequently define custom GUIDs for partitions to handle vendor-specific data, such as recovery or firmware images, ensuring isolation from standard OS partitions. As of 2025, continues to evolve with integrations for NVMe protocols and zoned storage in applications, facilitating efficient on shingled magnetic recording (SMR) drives and high-capacity SSDs in scenarios.

References

  1. [1]
    5. GUID Partition Table (GPT) Disk Layout - UEFI Forum
    This specification defines the GUID Partition table (GPT) disk layout (ie, partitioning scheme). The following list outlines the advantages of using the GPT ...
  2. [2]
    [PDF] Extensible Firmware Interface Specification - Intel
    Dec 1, 2002 · ... GUID Partition Table (GPT) Scheme ... The. EFI 1.10 Specification is designed to be backward compatible with the EFI 1.02 Specification.
  3. [3]
    [PDF] Unified Extensible Firmware Interface Specification 2.0 - UEFI Forum
    Jan 31, 2006 · Defined GUID Partition Entry - Partition Type GUIDs.......................................................... 96. Table 16. Defined GUID ...
  4. [4]
    FAQs about GUID Partitioning Table disk | Microsoft Learn
    In theory, a GUID Partition Table disk can be up to 264 sectors in a single logical block in length. Logical blocks are commonly 512 bytes or one sector in ...
  5. [5]
    PARTITION_INFORMATION_GPT - Win32 apps | Microsoft Learn
    Aug 31, 2022 · Each partition type that the EFI specification supports is identified by its own GUID, which is published by the developer of the partition.
  6. [6]
    UEFI/GPT-based hard drive partitions - Microsoft Learn
    Feb 10, 2023 · The minimum size of this partition is 200 MB, and must be formatted using the FAT32 file format. This partition is managed by the operating ...Partition Requirements · Partition layout
  7. [7]
    Windows Setup: Installing using the MBR or GPT partition style
    Dec 15, 2021 · The GPT drive format lets you set up drives that are larger than 4 terabytes (TB), and lets you easily set up as many partitions as you need.<|control11|><|separator|>
  8. [8]
    Convert a disk to GPT or MBR partition scheme - Microsoft Learn
    Jun 17, 2025 · GUID Partition Table (GPT) disks use the modern Unified Extensible Firmware Interface (UEFI), supports more than four partitions, and can ...
  9. [9]
    Windows and GPT FAQ - Microsoft Learn
    Each GPT partition has a 36-character Unicode name. This means that any software can present a human-readable name for the partition without any additional ...
  10. [10]
    [PDF] News Release - UEFI Forum
    Portland, Oregon, July 25, 2005 – Leading technology companies have formed the Unified EFI Forum, Inc., a non-profit Washington corporation.Missing: date | Show results with:date
  11. [11]
    Apple's Transition: Apple Partition Map to the GUID Partition Table
    In January 2006, Apple moved from PowerPC processors to Intel processors. This brought with it a number of changes to the way that a Macintosh works. These ...
  12. [12]
    Specifications | Unified Extensible Firmware Interface Forum
    UEFI Specification Version 2.1 (Errata D) (released October 2008) · UEFI Specification Version 2.0 (released January 2006). UEFI Shell Specification. UEFI Shell ...
  13. [13]
    [PDF] Unified Extensible Firmware Interface Specification - UEFI Forum
    Jun 27, 2012 · ... Error record addition for dma remapping units. December 11,. 2007. 2.1b ... 2.3.1, Errata C. 2.1b. 184 SNIA/DDF Wording Update. December 11 ...Missing: enhancements | Show results with:enhancements
  14. [14]
    13. Protocols – Media Access — UEFI Specification 2.10 Errata A ...
    This specification requires the firmware to be able to parse the Legacy MBR ), GUID Partition Table (GPT)( GPT overview ), and El Torito ( ISO-9660 and El ...
  15. [15]
    [PDF] Unified Extensible Firmware Interface (UEFI) Specification
    Page 1. Unified Extensible Firmware Interface. (UEFI) Specification. Release 2.11. UEFI Forum, Inc. Nov 21, 2024. Page 2. CONTENTS. 1 ...
  16. [16]
    [PDF] FAQ: Drive Partition Limits - UEFI Forum
    UEFI supports the GUID Partition Table (GPT), a more flexible partitioning scheme. GPT disks use 64-bit values to describe partitions, allowing larger ...
  17. [17]
    Chapter 2. Disk partitions | Red Hat Enterprise Linux | 8
    The MBR partition table cannot address storage larger than 2 TiB, equal to approximately 2.2 TB. Instead, GPT supports hard disks with larger capacity. The ...
  18. [18]
    Hybrid MBRs - Roderick W. Smith
    Apr 18, 2022 · A hybrid MBR is a variant on the normal protective MBR. A hybrid MBR contains a type-0xEE partition, but it also contains up to three additional primary ...
  19. [19]
    The Discoverable Partitions Specification (DPS)
    This specification describes the use of GUID Partition Table (GPT) UUIDs to enable automatic discovery of partitions and their intended mountpoints.Defined Partition Type Uuids · Verity · Suggested Mode Of Operation
  20. [20]
    RFC 4122 - A Universally Unique IDentifier (UUID) URN Namespace
    This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier).
  21. [21]
    1. GUID and Time Formats — UEFI Specification 2.10 documentation
    All EFI GUIDs (Globally Unique Identifiers) have the format described in RFC 4122 and comply with the referenced algorithms for generating GUIDs. It should ...Missing: uniqueness | Show results with:uniqueness
  22. [22]
  23. [23]
    RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace
    ### Summary of UUID/GUID Format from RFC 4122
  24. [24]
    how UUID of a partition is generated - Unix & Linux Stack Exchange
    May 10, 2015 · The version 4 UUID is meant for generating UUIDs from truly-random or pseudo-random numbers. It is described in RFC 4122 . Share. Share a ...How is the value of the "unique partition GUID" is generated?Are timestamps created with new GPT partition tables?More results from unix.stackexchange.comMissing: GUID | Show results with:GUID
  25. [25]
  26. [26]
    create partition primary - Microsoft Learn
    Nov 1, 2024 · ebd0a0a2-b9e5-4433-87c0-68b6b72699c7; LDM metadata partition (dynamic disk): 5808c8aa-7e8f-42e0-85d2-e1e90434cfb3; LDM data partition (dynamic ...
  27. [27]
    Discoverable Partitions Specification - Freedesktop.org
    May 7, 2021 · This partition type is defined by the UEFI Specification. 0fc63daf-8483-4772-8e79-3d69d8477de4, Other Data Partitions, Any native, optionally ...
  28. [28]
    Partitioning - ArchWiki - Arch Linux
    Sep 20, 2025 · CRC32 checksums to detect errors and corruption of the header and partition table. The section on #Partitioning tools contains a table ...<|separator|>
  29. [29]
    Inside the file system: 1 Disks and partitions
    Oct 6, 2020 · APFS partition (container) 7C3457EF-0000-11AA-AA11-00306543ECAC; AppleRAID partition 52414944-0000-11AA-AA11-00306543ECAC; Recovery partition ...<|control11|><|separator|>
  30. [30]
    Stock SSD Partition Layout - Asahi Linux Documentation
    7C3457EF-0000-11AA-AA11-00306543ECAC: APFS (diskutil: Apple_APFS ); 52637672-7900-11AA-AA11-00306543ECAC: Recovery OS (ASCII reads: "Rcvry", diskutil ...
  31. [31]
    Make the most of large drives with GPT and Linux - IBM Developer
    Jul 3, 2012 · By default, 128 partitions are supported, although you can change the partition table size if the partitioning software supports such changes.
  32. [32]
    fdisk(8) - Linux manual page - man7.org
    fdisk is a dialog-driven program for creation and manipulation of partition tables. It understands GPT, MBR, Sun, SGI and BSD partition tables.
  33. [33]
    parted(8) - Linux manual page - man7.org
    It supports multiple partition table formats, including MS-DOS and GPT. It is useful for creating space for new operating systems, reorganising disk usage ...
  34. [34]
    FreeBSD 7.0-RELEASE Release Notes
    Feb 16, 2008 · The gpt(8) utility now supports setting GPT partition labels. The gvinum(8) utility now supports the resetconfig sub-command. An ...
  35. [35]
    gpart - FreeBSD Manual Pages
    The gpart utility is used to partition GEOM providers, normally disks. The first argument is the action to be taken.SYNOPSIS · PARTITIONING SCHEMES · PARTITION TYPES · BOOTSTRAPPING
  36. [36]
    manual page: fdisk.8 - illumos - SmartOS
    DESCRIPTION. This command is used to do the following: o Create and modify an fdisk partition table on x86 systems o Create and modify ...
  37. [37]
    Overview of Disk Management - Oracle Solaris 11.1 Administration
    When using the format -e command on an EFI (GPT) labeled disk, the partition menu displays 128 partitions (slices), but only 7 partitions are usable. Comparison ...Missing: illumos | Show results with:illumos<|separator|>
  38. [38]
    [PDF] GUID Partition Table (GPT) - Intel
    How to install an Operating System (OS) using the GUID Disk Partition Table (GPT) on an Intel®. Hardware RAID (HWR) Array under uEFI environment. Revision 1.1.
  39. [39]
    Partition schemes available in Disk Utility on Mac - Apple Support
    Disk Utility on Mac supports several partition map schemes: GUID Partition Map, Master Boot Record, and Apple Partition Map.
  40. [40]
    4K-sector drives and Linux - LWN.net
    Mar 9, 2010 · The long-term solution would appear to be moving to a partition format like GPT, but that is not likely to be an easy migration. In summary: ...<|separator|>
  41. [41]
    ZFS on >2TB disk in Ubuntu 12.04? - gpt
    Aug 9, 2013 · I just got a 4TB disk and I'm running Ubuntu 12.04. http://www.thegeekstuff.com/2012/08/2tb-gtp-parted/ says you need to partition your disk ...Missing: requirement | Show results with:requirement
  42. [42]
    diskpart | Microsoft Learn
    Feb 3, 2023 · The diskpart command interpreter helps you manage your computer's drives (disks, partitions, volumes, or virtual hard disks).
  43. [43]
    Windows support for hard disks that are larger than 2 TB
    Jan 15, 2025 · This article discusses the manner in which Windows supports hard disks that have a storage capacity of more than 2 TB and explains how to initialize and ...
  44. [44]
    Windows Secure Boot certificate expiration and CA updates
    Jun 26, 2025 · Secure Boot was first introduced in Windows 8 to protect against the emerging pre-boot malware (also known as a bootkit) threat at that time. As ...
  45. [45]
    MBR2GPT.exe - Microsoft Learn
    May 7, 2025 · MBR2GPT.EXE converts a disk from the Master Boot Record (MBR) to the GUID Partition Table (GPT) partition style without modifying or deleting data on the disk.GPT partition type · Supported versions · Customize Windows PE boot...
  46. [46]
    Get-Partition (Storage) - Microsoft Learn
    The Get-Partition cmdlet returns one or more Partition objects depending on the specified criteria. This cmdlet will return a Volume object or a set of ...Missing: GPT | Show results with:GPT
  47. [47]
    UEFI requirements for Windows editions on SoC platforms
    Mar 23, 2023 · Windows requires the OS partition to reside on a GPT partitioned storage solution. MBR partitioned storage can be used as data storage. As ...<|control11|><|separator|>
  48. [48]
    Switch from legacy MBR disk to GPT disk with Windows 10
    Apr 30, 2025 · Switching from MBR to GPT with Windows 10 is needed for UEFI boot and enhanced security. Legacy MBR cannot recognize GPT disks.
  49. [49]
    Do most Android device use GPT as their partitioning scheme?
    May 28, 2016 · As far as I know, most Android devices use GPT. You can check it easily by fdisk -l /dev/block/mmcblk0.Missing: OS | Show results with:OS
  50. [50]
    Disk Layout Format - The Chromium Projects
    The "num" field defines the numerical ID of the partition in the GPT. The "label" field defines the name of the partition in the GPT table and also the ...
  51. [51]
    [SeaBIOS] GPT disks in a BIOS world
    Jun 5, 2012 · ... support GPT disk labels? > Does SeaBIOS understand GPT disk labels? Is it aware of GPT? This is a common misunderstanding of the BIOS ...
  52. [52]
    R1/beta1 – Release Notes - Haiku OS
    EFI bootloader and GPT support. This was one of the most complex features to implement, but its actual description is rather simple: booting from GPT ...
  53. [53]
    Are GPT disks and SSD drives supported? - ReactOS Forum
    Feb 14, 2019 · I wanted ask whether GPT partitions and SSD drives are supported. Looking at the installer, it looks that GPT disks are not yet supported. Soon ...NTFS-3G - ReactOS ForumComparison ReactOS with HaikuMore results from reactos.org
  54. [54]
    [PDF] Xbox one file system data storage: A forensic analysis - Purdue e-Pubs
    The Primary Partition Entry Array is the GPT version of the legacy MBR partition table. There is more data as well as data integrity checking within a Primary ...
  55. [55]
    Understanding the GPT (GUID Partition Table) Disk Layout
    Aug 29, 2025 · The GUID Partition Table (GPT) is a modern standard for defining the partition structure on a storage device, such as a hard disk drive ...
  56. [56]
    GUID partition tables (GPT) – what are they and why do they matter?
    Jul 15, 2024 · Newer GUID Partition Tables allow larger partitions on drives up to 18 exabytes in size. They also provide safety and reliability features.Missing: advantages limitations
  57. [57]
    NVMe Zoned Namespaces (ZNS) Command Set Specification
    The NVMe Zoned Namespaces (ZNS) interface is a command set developed by NVM Express. By dividing an NVMe namespace into zones, which are required to be ...Missing: GPT IoT