GUID Partition Table: Difference between revisions
→Partition table header (LBA 1): Revision is still 1 in the latest spec |
|||
Line 1: | Line 1: | ||
[[File:GUID Partition Table Scheme.svg|thumb|Diagram illustrating the layout of the GPT scheme. In this example, each logical block is 512 bytes in size, and each partition entry is 128 bytes, and the corresponding partition entries are assumed to be located in [[Logical block addressing|LBA]] 2-33.<!-- In reality only LBA 0 and 1 are fixed, the other parameters are defined in the GPT header. --> LBA addresses that are negative indicate position from the end of the volume, with −1 as the last addressable block.]] |
[[File:GUID Partition Table Scheme.svg|thumb|Diagram illustrating the layout of the GPT scheme. In this example, each logical block is 512 bytes in size, and each partition entry is 128 bytes, and the corresponding partition entries are assumed to be located in [[Logical block addressing|LBA]] 2-33.<!-- In reality only LBA 0 and 1 are fixed, the other parameters are defined in the GPT header. --> LBA addresses that are negative indicate position from the end of the volume, with −1 as the last addressable block.]] |
||
'''GUID Partition Table''' ('''GPT''') is a standard for the layout of the [[partition table]] on a physical [[Computer storage device|storage device]] used in a desktop or server PC, such as a [[hard disk drive]] or [[solid-state drive]], using [[globally unique identifier]]s (GUID). Although it forms a part of the [[Unified Extensible Firmware Interface]] (UEFI) standard ([[Unified EFI Forum]] proposed replacement for the [[IBM PC|PC]] [[BIOS]]), it is also used on some BIOS systems because of the limitations of [[master boot record]] (MBR) partition tables, which use 32 bits for storing [[Logical block addressing|logical block addresses]] (LBA) and size information on a traditionally 512 |
'''GUID Partition Table''' ('''GPT''') is a standard for the layout of the [[partition table]] on a physical [[Computer storage device|storage device]] used in a desktop or server PC, such as a [[hard disk drive]] or [[solid-state drive]], using [[globally unique identifier]]s (GUID). Although it forms a part of the [[Unified Extensible Firmware Interface]] (UEFI) standard ([[Unified EFI Forum]] proposed replacement for the [[IBM PC|PC]] [[BIOS]]), it is also used on some BIOS systems because of the limitations of [[master boot record]] (MBR) partition tables, which use 32 bits for storing [[Logical block addressing|logical block addresses]] (LBA) and size information on a traditionally 512-byte [[disk sector]]. |
||
All modern PC [[operating system]]s support GPT. Some, including [[macOS]] and [[Microsoft Windows]] on x86, support booting from GPT partitions only on systems with EFI firmware, but [[FreeBSD]] and most [[Linux distribution]]s can boot from GPT partitions on systems with both legacy BIOS firmware interface and EFI. |
All modern PC [[operating system]]s support GPT. Some, including [[macOS]] and [[Microsoft Windows]] on x86, support booting from GPT partitions only on systems with EFI firmware, but [[FreeBSD]] and most [[Linux distribution]]s can boot from GPT partitions on systems with both legacy BIOS firmware interface and EFI. |
Revision as of 03:33, 19 July 2017
GUID Partition Table (GPT) is a standard for the layout of the partition table on a physical storage device used in a desktop or server PC, such as a hard disk drive or solid-state drive, using globally unique identifiers (GUID). Although it forms a part of the Unified Extensible Firmware Interface (UEFI) standard (Unified EFI Forum proposed replacement for the PC BIOS), it is also used on some BIOS systems because of the limitations of master boot record (MBR) partition tables, which use 32 bits for storing logical block addresses (LBA) and size information on a traditionally 512-byte disk sector.
All modern PC operating systems support GPT. Some, including macOS and Microsoft Windows on x86, 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 both legacy BIOS firmware interface and EFI.
History
The widespread MBR partitioning scheme, dating from the early 1980s, imposed limitations that affect the use of modern hardware. One of the main limitations is the usage of 32 bits for storing block addresses and quantity information. For hard disks with 512-byte sectors, the MBR partition table entries allow up to a maximum of 2 TiB (232 × 512 bytes).[1]
Intel therefore developed a new partition table format in the late 1990s as part of what eventually became UEFI. As of 2010[update], GPT forms a subset of the UEFI specification.[2] GPT allocates 64 bits for logical block addresses, therefore allowing a maximum disk size of 264 sectors. For disks with 512-byte sectors, maximum size is 9.4 ZB (9.4 × 1021 bytes) or 8 ZiB (9,444,732,965,739,290,427,392 bytes, coming from 18,446,744,073,709,551,616 (264) sectors × 512 (29) bytes per sector).[1][3]
Features
MBR-based partition table schemes insert the partitioning information for (usually) four "primary" partitions in the MBR (which on a BIOS system is also the container for code that begins the process of booting the system). In a GPT, the first sector of the disk is reserved for a "protective MBR" such that booting a BIOS-based computer from a GPT disk is supported, but the bootloader and operating system must both be GPT-aware.[citation needed]
Like modern MBRs, GPTs use logical block addressing (LBA) in place of the historical cylinder-head-sector (CHS) addressing. The protective MBR is contained in LBA 0, the GPT header is in LBA 1, and the GPT header has a pointer to the partition table, or Partition Entry Array, typically LBA 2. The UEFI specification stipulates that a minimum of 16,384 bytes, regardless of sector size, be allocated for the Partition Entry Array.[4] On a disk having 512-byte sectors, a partition entry array size of 16,384 bytes and the minimum size of 128 bytes for each partition entry, LBA 34 is the first usable sector on the disk.
Hard-disk manufacturers are transitioning to 4,096-byte sectors. The first such drives continued to present 512-byte physical sectors to the OS, so degraded performance could result when the drive's physical 4 KB sector boundaries did not coincide with the 4 KB logical blocks, clusters and virtual memory pages common in many operating systems and file systems. This was a particular problem on writes, when the drive is forced to perform two read-modify-write operations to satisfy a single misaligned 4 KB write operation.[5]
For backward compatibility with most legacy operating systems such as DOS, OS/2, and versions of Windows before Vista, MBR partitions must always start on track boundaries according to the traditional CHS addressing scheme and end on a cylinder boundary. This is also true of partitions with emulated CHS geometries (as reflected by the BIOS and the CHS sectors entries in the MBR partition table) or partitions accessed only via LBA. Extended partitions must start on cylinder boundaries as well. This typically causes the first primary partition to start at LBA 63 on disks accessed via LBA, leaving a gap of 62 sectors with MBR-based disks, sometimes called "MBR gap", "boot track", or "embedding area". That otherwise unused disk space is commonly used by bootloaders such as GRUB for storing their second stages.[6]
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.[3]
A single partition type of 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.[3] 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.[7]
While the MBR and protective MBR layouts were defined around 512 bytes per sector, the actual sector size can be larger on various media such as MO disks or hard disks with Advanced Format.[citation needed]
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 disk. This amounts to a maximum reported size of 2 TB, assuming a disk with 512 bytes per sector (see 512e). It would result in 16 TB with 4 KB sectors (4Kn), but since many older operating systems and tools are hard wired for a sector size of 512 bytes or are limited to 32-bit calculations, exceeding the 2 TB limit could cause compatibility problems.[3]
Hybrid MBR (LBA 0 + GPT)
In operating systems that support GPT-based boot through BIOS services rather than EFI, the first sector is also still 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.[3]
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. The EFI stipulates a minimum of 16,384 bytes be reserved for the partition table array, so there are 128 partition entries reserved, each 128 bytes long.
The header contains the disk GUID. It records its own size and location (always LBA 1) and the size and location of the secondary GPT header and table (always the last sectors on the disk). Importantly, it also contains a CRC32 checksum for itself and for the partition table, which may be verified by the firmware, bootloader, or operating system on boot. Because of this, hex editors should not be used to modify the contents of the GPT. Such modification would render the checksum invalid. In this case, the primary GPT may be overwritten with the secondary one by disk recovery software. If both GPTs contain invalid checksums, many bootloaders (those governed by an integrity model in particular) and operating systems will refuse to work with the disk until the corrupted partition tables are repaired or removed.
Offset | Length | Contents |
---|---|---|
0 (0x00) | 8 bytes | Signature ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h or 0x5452415020494645ULL[a] on little-endian machines) |
8 (0x08) | 4 bytes | Revision (for GPT version 1.0 (through at least UEFI version 2.7 (May 2017)), the value is 00h 00h 01h 00h) |
12 (0x0C) | 4 bytes | Header size in little endian (in bytes, usually 5Ch 00h 00h 00h or 92 bytes) |
16 (0x10) | 4 bytes | CRC32/zlib of header (offset +0 up to header size) in little endian, with this field zeroed during calculation |
20 (0x14) | 4 bytes | Reserved; must be zero |
24 (0x18) | 8 bytes | Current LBA (location of this header copy) |
32 (0x20) | 8 bytes | Backup LBA (location of the other header copy) |
40 (0x28) | 8 bytes | First usable LBA for partitions (primary partition table last LBA + 1) |
48 (0x30) | 8 bytes | Last usable LBA (secondary partition table first LBA - 1) |
56 (0x38) | 16 bytes | Disk GUID (also referred as UUID on UNIXes) |
72 (0x48) | 8 bytes | Starting LBA of array of partition entries (always 2 in primary copy) |
80 (0x50) | 4 bytes | Number of partition entries in array |
84 (0x54) | 4 bytes | Size of a single partition entry (usually 80h or 128) |
88 (0x58) | 4 bytes | CRC32/zlib of partition array in little endian |
92 (0x5C) | * | Reserved; must be zeroes for the rest of the block (420 bytes for a sector size of 512 bytes; but can be more with larger sector sizes) |
The values for current and backup LBAs of the primary header should be the second sector of the disk (LBA 1) and the last sector of the disk, respectively. The secondary header at the end of the disk identifies its own table of partition entries, which is located directly before that header.
Since the primary header must be located at LBA 1, it will not necessarily be physically contiguous with the MBR; on an Advanced Format disk with 4 KB sectors, the header will be located at the byte 4096 from the beginning of the disk, leaving a gap of unused space between it and the MBR. On such a disk, the byte 512 that directly follows the MBR is still part of LBA 0. However, a disk with 512-byte sectors will store its GPT header at byte 512 because, as such, that position corresponds to LBA 1.
Partition entries
Offset | Length | Contents |
---|---|---|
0 (0x00) | 16 bytes | Partition type GUID |
16 (0x10) | 16 bytes | Unique partition GUID |
32 (0x20) | 8 bytes | First LBA (little endian) |
40 (0x28) | 8 bytes | Last LBA (inclusive, usually odd) |
48 (0x30) | 8 bytes | Attribute flags (e.g. bit 60 denotes read-only) |
56 (0x38) | 72 bytes | Partition name (36 UTF-16LE code units) |
After the header, the Partition Entry Array describes partitions, using a minimum size of 128 bytes for each entry block.[8] 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, no central registry is needed to ensure the uniqueness of the GUID partition type designators.
Also, the sector size must not be assumed to be hard-wired to 512 bytes per sector in calculations (see Advanced Format). That is, there can be more than four partition entries in a single sector, and (with much larger partition table entries possible in the future) it is possible to have a sector hold only a fraction of a partition entry. Except for the first two sectors (LBA 0 and LBA 1), the GPT specification describes the size and organization of a data structure, but intentionally does not specify the number of sectors on disk that are used to store it.
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 (required by the computer to function properly, OEM partition for example, disk partitioning utilities must preserve the partition as is) |
1 | EFI firmware should ignore the content of the partition and not try to read from it |
2 | Legacy BIOS bootable (equivalent to active flag (typically bit 7 set) at offset +0h in partition entries of the MBR partition table)[9] |
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:[10][11]
Bit | Content |
---|---|
60 | Read-only |
61 | Shadow copy (of another partition) |
62 | Hidden |
63 | No drive letter (i.e. do not automount) |
Operating-system support
UNIX and Unix-like systems
OS family | Version or edition | Platform | Read and write support | Boot support | Note |
---|---|---|---|---|---|
FreeBSD | Since 7.0 | IA-32, x86-64, ARM | Yes | Yes | In a hybrid configuration, both GPT and MBR partition identifiers may be used. |
Linux | Most of the x86 Linux distributions Fedora 8+ and Ubuntu 8.04+[12] |
IA-32, x86-64 | Yes | Yes | New tools such as gdisk, GNU Parted,[13][14] util-linux v2.23+ fdisk,[15][16] Syslinux, GRUB 0.96 + patches and GRUB 2 have been GPT-enabled. |
macOS | Since 10.4.0 (some features since 10.4.6)[17] | IA-32, x86-64, PowerPC | Yes | Yes | Only Intel Macintosh computers can boot from GPT. |
MidnightBSD | Since 0.4-CURRENT | IA-32, x86-64 | Yes | Requires BIOS | In a hybrid configuration, both GPT and MBR partition identifiers may be used. |
Solaris | Since Solaris 10 | IA-32, x86-64, SPARC | Yes | Yes | [18] |
HP-UX | Since HP-UX 11.20 | IA-64 | Yes | Yes | [19] |
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.[citation needed]
OS version | Release date | Platform | Read or write support | Boot support | Note |
---|---|---|---|---|---|
Windows XP | 2001-10-25 | IA-32 | No | No | |
Windows Server 2003 | 2003-04-24 | IA-32 | No | No | |
Windows Server 2003 SP1 | 2005-03-30 | IA-32 | Yes | No | MBR takes precedence in hybrid configuration |
Windows Vista | 2006-07-22 | IA-32 | Yes | No | MBR takes precedence in hybrid configuration |
Windows Server 2008 | 2008-02-27 | IA-32 | Yes | No | MBR takes precedence in hybrid configuration |
Windows 7 | 2009-10-22 | IA-32 | Yes | No | MBR takes precedence in hybrid configuration |
Windows 8 | 2012-08-01 | IA-32 | Yes | Requires UEFI[21] | MBR takes precedence in hybrid configuration |
Windows 8.1 | 2013-08-27 | IA-32 | Yes | Requires UEFI[21] | MBR takes precedence in hybrid configuration |
Windows 10 | 2015-07-29 | IA-32 | Yes | Requires UEFI[21] | MBR takes precedence in hybrid configuration |
Windows: 64-bit versions
OS version | Release date | Platform | Read and write support | Boot support | Note |
---|---|---|---|---|---|
Windows XP Professional x64 Edition Windows Server 2003 |
2005-04-25[22] | x64 | Yes | No | MBR takes precedence in hybrid MBR configuration |
Windows Server 2003 | 2005-04-25 | IA-64 | Yes | Yes | MBR takes precedence in hybrid MBR configuration |
Windows Vista | 2006-07-22 | x64 | Yes | Requires UEFI[b] | MBR takes precedence in hybrid configuration |
Windows Server 2008 | 2008-02-27 | x64 | Yes | Requires UEFI | MBR takes precedence in hybrid configuration |
Windows Server 2008 | 2008-02-27 | IA-64 | Yes | Yes | MBR takes precedence in hybrid configuration |
Windows 7 | 2009-10-22 | x64 | Yes | Requires UEFI[c] | MBR takes precedence in hybrid configuration. |
Windows Server 2008 R2 | 2009-10-22 | IA-64 | Yes | Yes | MBR takes precedence in hybrid configuration |
Windows 8 Windows Server 2012 |
2012-08-01 | x64 | Yes | Requires UEFI[21] | MBR takes precedence in hybrid configuration. |
Windows 8.1 | 2013-08-27 | x64 | Yes | Requires UEFI[21] | MBR takes precedence in hybrid configuration |
Windows 10 | 2015-07-29 | x64 | Yes | Requires UEFI[21] | MBR takes precedence in hybrid configuration |
Windows Server 2016 | 2016-10-12 | x64 | Yes | Requires UEFI[21] | MBR takes precedence in hybrid configuration |
Partition type GUIDs
Operating system | Partition type | Globally unique identifier (GUID)[d] |
---|---|---|
(None) | 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[e] | 21686148-6449-6E6F-744E-656564454649 | |
Intel Fast Flash (iFFS) partition (for Intel Rapid Start technology)[23][24] | D3BFE2DE-3DAF-11DF-BA40-E3A556D89593 | |
Sony boot partition[f] | F4019732-066E-4E12-8273-346C5641494F | |
Lenovo boot partition[f] | BFBFAFE7-A34F-448A-9A5B-6213EB736C22 | |
Windows | Microsoft Reserved Partition (MSR) | E3C9E316-0B5C-4DB8-817D-F92DF00215AE |
Basic data partition[g] | EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 | |
Logical Disk Manager (LDM) metadata partition | 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3 | |
Logical Disk Manager data partition | AF9B60A0-1431-4F62-BC68-3311714A69AD | |
Windows Recovery Environment | DE94BBA4-06D1-4D40-A16A-BFD50179D6AC | |
IBM General Parallel File System (GPFS) partition | 37AFFC90-EF7D-4E96-91C3-2D7AE055B174 | |
Storage Spaces partition | E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D | |
HP-UX | Data partition | 75894C1E-3AEB-11D3-B7C1-7B03A0000000 |
Service Partition | E2A1E728-32E3-11D6-A682-7B03A0000000 | |
Linux | Linux filesystem data[g] | 0FC63DAF-8483-4772-8E79-3D69D8477DE4 |
RAID partition | A19D880F-05FC-4D3B-A006-743F0F84911E | |
Root partition (x86)[27] | 44479540-F297-41B2-9AF7-D131D5F0458A | |
Root partition (x86-64)[27] | 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 | |
Root partition (32-bit ARM)[27] | 69DAD710-2CE4-4E3C-B16C-21A1D49ABED3 | |
Root partition (64-bit ARM/AArch64)[27] | B921B045-1DF0-41C3-AF44-4C6F280D3FAE | |
Swap partition | 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F | |
Logical Volume Manager (LVM) partition | E6D6D379-F507-44C2-A23C-238F2A3DF928 | |
/home partition[27] | 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 | |
/srv (server data) partition[27] | 3B8F8425-20E0-4F3B-907F-1A25A76F98E8 | |
Plain dm-crypt partition[28][29] | 7FFEC5C9-2D00-49B7-8941-3EA10A5586B7 | |
LUKS partition[28][29] | CA7D7CCB-63ED-4C53-861C-1742536059CC | |
Reserved | 8DA63339-0007-60C0-C436-083AC8230908 | |
FreeBSD | Boot partition | 83BD6B9D-7F41-11DC-BE0B-001560B84F0F |
Data partition | 516E7CB4-6ECF-11D6-8FF8-00022D09712B | |
Swap partition | 516E7CB5-6ECF-11D6-8FF8-00022D09712B | |
Unix File System (UFS) partition | 516E7CB6-6ECF-11D6-8FF8-00022D09712B | |
Vinum volume manager partition | 516E7CB8-6ECF-11D6-8FF8-00022D09712B | |
ZFS partition | 516E7CBA-6ECF-11D6-8FF8-00022D09712B | |
macOS Darwin |
Hierarchical File System Plus (HFS+) partition | 48465300-0000-11AA-AA11-00306543ECAC |
Apple UFS | 55465300-0000-11AA-AA11-00306543ECAC | |
ZFS[h] | 6A898CC3-1DD2-11B2-99A6-080020736631 | |
Apple RAID partition | 52414944-0000-11AA-AA11-00306543ECAC | |
Apple RAID partition, offline | 52414944-5F4F-11AA-AA11-00306543ECAC | |
Apple Boot partition (Recovery HD) | 426F6F74-0000-11AA-AA11-00306543ECAC | |
Apple Label | 4C616265-6C00-11AA-AA11-00306543ECAC | |
Apple TV Recovery partition | 5265636F-7665-11AA-AA11-00306543ECAC | |
Apple Core Storage (i.e. Lion FileVault) partition | 53746F72-6167-11AA-AA11-00306543ECAC | |
SoftRAID_Status | B6FA30DA-92D2-4A9A-96F1-871EC6486200 | |
SoftRAID_Scratch | 2E313465-19B9-463F-8126-8A7993773801 | |
SoftRAID_Volume | FA709C7E-65B1-4593-BFD5-E71D61DE9B02 | |
SoftRAID_Cache | BBBA6DF5-F46F-4A89-8F59-8765B2727503 | |
Solaris illumos |
Boot partition | 6A82CB45-1DD2-11B2-99A6-080020736631 |
Root partition | 6A85CF4D-1DD2-11B2-99A6-080020736631 | |
Swap partition | 6A87C46F-1DD2-11B2-99A6-080020736631 | |
Backup partition | 6A8B642B-1DD2-11B2-99A6-080020736631 | |
/usr partition[h] | 6A898CC3-1DD2-11B2-99A6-080020736631 | |
/var partition | 6A8EF2E9-1DD2-11B2-99A6-080020736631 | |
/home partition | 6A90BA39-1DD2-11B2-99A6-080020736631 | |
Alternate sector | 6A9283A5-1DD2-11B2-99A6-080020736631 | |
Reserved partition | 6A945A3B-1DD2-11B2-99A6-080020736631 | |
6A9630D1-1DD2-11B2-99A6-080020736631 | ||
6A980767-1DD2-11B2-99A6-080020736631 | ||
6A96237F-1DD2-11B2-99A6-080020736631 | ||
6A8D2AC7-1DD2-11B2-99A6-080020736631 | ||
NetBSD[30][i] | Swap partition | 49F48D32-B10E-11DC-B99B-0019D1879648 |
FFS partition | 49F48D5A-B10E-11DC-B99B-0019D1879648 | |
LFS partition | 49F48D82-B10E-11DC-B99B-0019D1879648 | |
RAID partition | 49F48DAA-B10E-11DC-B99B-0019D1879648 | |
Concatenated partition | 2DB519C4-B10F-11DC-B99B-0019D1879648 | |
Encrypted partition | 2DB519EC-B10F-11DC-B99B-0019D1879648 | |
ChromeOS[31] | ChromeOS kernel | FE3A2A5D-4F32-41A7-B725-ACCC3285A309 |
ChromeOS rootfs | 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC | |
ChromeOS future use | 2E0A753D-9E48-43B0-8337-B15192CB1B5E | |
Haiku[32] | Haiku BFS | 42465331-3BA3-10F1-802A-4861696B7521 |
MidnightBSD[33][i] | Boot partition | 85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7 |
Data partition | 85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7 | |
Swap partition | 85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7 | |
Unix File System (UFS) partition | 0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7 | |
Vinum volume manager partition | 85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7 | |
ZFS partition | 85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7 | |
Ceph | Ceph Journal[j] | 45B0969E-9B03-4F30-B4C6-B4B80CEFF106 |
Ceph dm-crypt Encrypted Journal[j] | 45B0969E-9B03-4F30-B4C6-5EC00CEFF106 | |
Ceph OSD[j] | 4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D | |
Ceph dm-crypt OSD[j] | 4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D | |
Ceph disk in creation[j] | 89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE | |
Ceph dm-crypt disk in creation[j] | 89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE | |
OpenBSD | Data partition | 824CC7A0-36A8-11E3-890A-952519AD3F61 |
QNX | Power-safe (QNX6) file system[35] | CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1 |
Plan 9 | Plan 9 partition | C91818F9-8025-47AF-89D2-F030D7000C2C |
VMware ESX | vmkcore (coredump partition) | 9D275380-40AD-11DB-BF97-000C2911D1B8 |
VMFS filesystem partition | AA31E02A-400F-11DB-9590-000C2911D1B8 | |
VMware Reserved | 9198EFFC-31C0-11DB-8F78-000C2911D1B8 | |
Android-IA[36][37] | Bootloader | 2568845D-2332-4675-BC39-8FA5A4748D15 |
Bootloader2 | 114EAFFE-1552-4022-B26E-9B053604CF84 | |
Boot | 49A4D17F-93A3-45C1-A0DE-F50B2EBE2599 | |
Recovery | 4177C722-9E92-4AAB-8644-43502BFD5506 | |
Misc | EF32A33B-A409-486C-9141-9FFB711F6266 | |
Metadata | 20AC26BE-20B7-11E3-84C5-6CFDB94711E9 | |
System | 38F428E6-D326-425D-9140-6E0EA133647C | |
Cache | A893EF21-E428-470A-9E55-0668FD91A2D9 | |
Data | DC76DDA9-5AC1-491C-AF42-A82591580C0D | |
Persistent | EBC597D0-2053-4B15-8B64-E0AAC75F4DB1 | |
Factory | 8F68CC74-C5E5-48DA-BE91-A0C8C15E9C80 | |
Fastboot / Tertiary[38] | 767941D0-2085-11E3-AD3B-6CFDB94711E9 | |
OEM | AC6D7924-EB71-4DF8-B48D-E267B27148FF | |
Open Network Install Environment (ONIE) | Boot | 7412F7D5-A156-4B13-81DC-867174929325 |
Config | D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149 | |
PowerPC | PReP boot | 9E1A2D38-C612-4316-AA26-8B49521E5A8B |
freedesktop.org OSes (Linux, etc.) | Shared boot loader configuration[39] | BC13C2FF-59E6-4262-A352-B275FD6F7172 |
Atari TOS | Basic data partition (GEM, BGM, F32) | 734E5AFE-F61A-11E6-BC64-92361F002671 |
See also
- Advanced Active Partition (AAP)
- Apple Partition Map (APM)
- Boot Engineering Extension Record (BEER)
- BSD disklabel
- Device Configuration Overlay (DCO)
- Extended Boot Record (EBR)
- Host Protected Area (HPA)
- Partition alignment
- Rigid Disk Block (RDB)
- Volume Table of Contents (VTOC)
Notes
- ^ Adding
ULL
suffix to an integer constant makes it of typeunsigned long long int
. - ^ Only if using its service pack 1 or 2
- ^ In a multi-disk setup, non-UEFI bootloader (boot drive) requires MBR-based partitioning, while a system drive can use GUID partitioning.
- ^ The GUIDs in this table are written assuming a little-endian byte order. For example, the GUID for an EFI System partition is written as C12A7328-F81F-11D2-BA4B-00A0C93EC93B here, which corresponds to the 16 byte sequence 28h 73h 2Ah C1h 1Fh F8h D2h 11h BAh 4Bh 00h A0h C9h 3Eh C9h 3Bh – only the first three blocks are byte-swapped.
- ^ The formation of this GUID does not follow the GUID definition; it is formed by using the ASCII codes for the string "Hah!IdontNeedEFI". Such formation of "GUID" value breaks down the guaranteed uniqueness of GUID.
- ^ a b Some computer manufacturers have their own GUIDs for partitions that are analogous to the EFI System Partition, but that hold boot loaders to launch manufacturer-specific recovery tools.[25]
- ^ a b Previously, Linux used the same GUID for the data partitions as Windows (Basic data partition: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7). Linux never had a separate unique partition type GUID defined for its data partitions. This created problems when dual-booting Linux and Windows in UEFI-GPT setup. The new GUID (Linux filesystem data: 0FC63DAF-8483-4772-8E79-3D69D8477DE4) was defined jointly by GPT fdisk and GNU Parted developers.[26] It is identified as type code 0x8300 in GPT fdisk. (See definitions in gdisk's parttypes.cc)
- ^ a b The GUID for
/usr
on Solaris is used as a generic GUID for ZFS by macOS. - ^ a b NetBSD and MidnightBSD had used the FreeBSD GUIDs before their unique GUIDs were created.
- ^ a b c d e f The Ceph filesystem uses GUIDs to mark the state of preparation a disk is in.[34]
References
- ^ a b "FAQ: Drive Partition Limits" (PDF). UEFI Forum. Retrieved 2013-11-04.
- ^
Nikkel, Bruce J. (September 2009). "Forensic analysis of GPT disks and GUID partition tables". Digital Investigation. 6 (1–2): 39–47. doi:10.1016/j.diin.2009.07.001.
The current popular BIOS and MBR partitioning scheme was originally developed in the early 1980s for the IBM Personal Computer using IBM PC-DOS or MS-DOS. The Basic Input/Output System (BIOS) provides an interface to the hardware and initiates the boot process (IBM, 1983). The MBR, located in sector zero, contains the initial boot code and a four entry partition table (Microsoft, 1983). Intended to solve booting and partitioning limitations with newer hardware, a replacement for both the BIOS and the MBR partition table was developed by Intel in the late 1990s (Intel, 2000). This is now called the Unified EFI (UEFI, 2008 UEFI Forum. Unified extensible firmware interface specification version 2.2 2008.UEFI, 2008) specification, and managed by the UEFI Forum (UEFI, 2009). A subset of this specification includes GPT, intended to replace the DOS/MBR partition tables.
- ^ a b c d e Smith, Roderick W. (2012-07-03). "Make the Most of Large Drives with GPT and Linux". IBM. Retrieved 2013-05-29.
- ^ "UEFI specification". UEFI.org.
- ^ "Western Digital's Advanced Format: The 4K Sector Transition Begins". Anandtech.com. Anandtech.
- ^ "Installation". 3.4 BIOS installation. GNU GRUB. Retrieved 2013-09-25.
- ^ "Technical Note TN2166: Secrets of the GPT". Developer.Apple.com. Apple. 2006-11-06. Retrieved 2014-04-16.
- ^ The GPT header contains a field that specifies the size of a partition table entry. The minimum required is 128 bytes, but implementations must allow for other values. See "Mac Developer Library". Developer.Apple.com. Apple. Retrieved 2014-07-13.
- ^ "e09127r3 EDD-4 Hybrid MBR Boot Code Annex" (PDF). T13.org.
- ^ https://technet.microsoft.com/en-us/library/cc753455.aspx#Anchor_1
- ^ https://msdn.microsoft.com/en-us/library/aa381635.aspx
- ^ "Ubuntu on MacBook". Ubuntu Community Documentation.
- ^ "GNU Parted FAQ".
- ^ "mklabel - GNU Parted Manual".
- ^ "fdisk: add GPT support". kernel.org. 2013-09-27. Retrieved 2013-10-18.
- ^ Davidlohr Bueso (2013-09-28). "fdisk updates and GPT support". Retrieved 2013-10-18.
- ^ "Myths and Facts About Intel Macs". rEFIt.
- ^ "Booting from a ZFS Root File System".
- ^ "idisk(1M)" (PDF). Hewlett-Packard.
- ^ a b "Windows and GPT FAQ". Microsoft.
- ^ a b c d e f g Windows 8 32-bit supports booting from UEFI-based PC using GPT-based disks.
- ^ Microsoft raises the speed limit with the availability of 64-bit editions of Windows Server 2003 and Windows XP Professional
- ^ ftp://download.gigabyte.ru/manual/mb_manual_intel-ui_e.pdf
- ^ "F6F: Funtoo Linux and Intel Rapid Start Technology". Blog.adios.tw. 2012-10-30. Retrieved 2014-01-29.
- ^ GPT fdisk: parttypes.cc, line 198
- ^ Smith, Rod (23 June 2011). "Need for a unique Linux GPT GUID type code (PATCH included)". bug-parted (Mailing list). Retrieved 12 April 2016.
{{cite mailing list}}
: Unknown parameter|agency=
ignored (help); Unknown parameter|mailinglist=
ignored (|mailing-list=
suggested) (help) - ^ a b c d e f The Discoverable Partitions Specification
- ^ a b "[dm-crypt] LUKS GPT GUID". Saout.de. Retrieved 2014-01-29.
- ^ a b "[dm-crypt] LUKS GPT GUID". Saout.de. Retrieved 2014-01-29.
- ^ "CVS log for src/sys/sys/disklabel_gpt.h". Cvsweb.netbsd.org. Retrieved 2014-01-29.
- ^ "Disk Format - The Chromium Projects". Chromium.org. Retrieved 2014-01-29.
- ^ src/add-ons/kernel/partitioning_systems/gpt/gpt_known_guids.h
- ^ http://www.midnightbsd.org/cgi-bin/cvsweb.cgi/src/sys/sys/gpt.h.diff?r1=1.4;r2=1.5 src/sys/sys/gpt.h
- ^ Script to set up a ceph disk: ceph-disk, lines 76-81
- ^ QNX Power-safe filesystem
- ^ "gpt.ini (github.com/android-ia/vendor_intel_baytrail)".
- ^ "gpt-sample.ini (github.com/android-ia/platform_bootable_userfastboot)".
- ^ "gpt.c (github.com/android-ia/platform_bootable_userfastboot)".
- ^ "The Boot Loader Specification". freedesktop.org. Retrieved 2017-01-05.
External links
- Microsoft TechNet: Disk Sectors on GPT Disks (archived page)
- Microsoft TechNet: Troubleshooting Disks and File Systems
- Microsoft TechNet: Using GPT Drives
- Microsoft: FAQs on Using GPT disks in Windows
- Microsoft Technet: How Basic Disks and Volumes Work 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: Secrets of the GPT
- Make the most of large drives with GPT and Linux
- Convert Windows Vista SP1+ or 7 x86_64 boot from BIOS-MBR mode to UEFI-GPT mode without Reinstall
- Support for GPT (Partition scheme) and HDD greater than 2.19 TB in Microsoft Windows XP
- Setting up a RAID volume in Linux with >2TB disks