Dans le domaine du matériel informatique, une table de partitionnement GUID, en anglais GUID Partition Table (GPT), soit Globally Unique Identifier Partition Table, est un standard pour décrire la table de partitionnement d'une mémoire de masse (ex. disque dur). Bien qu'il fasse partie du standard EFI Extensible Firmware Interface (qu'Intel propose en remplacement du PC BIOS), il est aussi utilisé sur certains BIOS à cause des limitations de la table de partitionnement du MBR qui limite la taille des partitions à 2,2 To (). GPT gère les disques durs et partitions jusqu'à 9,4 Zo ( ou 9,4 trilliards d'octets soit ou ).

La prise en charge de GPT parmi les principaux systèmes reste limitée (voir OS et GPT).

Historique La table de partitionnement du MBR date du début des . Dès la fin des , les limitations qu'elle impose sont apparues trop contraignantes pour les matériels les plus modernes. Intel a alors développé un nouveau format de table de partitionnement, format qui fait partie de ce qui devint UEFI. La GPT est un sous-ensemble des spécifications de UEFI.

Caractéristiques La table de partitionnement basée sur le MBR est située à l'intérieur de ce MBR, qui, dans le cas d'un système utilisant BIOS, contient aussi le programme de démarrage du système. En mode GPT, les informations concernant la table de partitionnement sont stockées dans un entête GPT, mais pour garantir une compatibilité (avec les logiciels gérant MBR mais non GPT), GPT maintient une entrée MBR (dite protectrice car empêchant les systèmes ne prenant pas en charge d'écrire sur la totalité du disque) suivie de l'entête d'une partition primaire, le véritable début de la table de partitionnement.

Comme les MBR modernes, GPT utilise l'adressage logique des blocs (LBA) et non l'adressage historique CHS (cylinder-head-sector). Les informations du MBR sont à l'adresse 0 (LBA 0), l'entête GPT se trouve à l'adresse 1 (LBA 1), et la table de partitionnement en elle-même suit à partir de l'adresse 2 (LBA 2). Sur les versions 64-bit de Windows, le système d'exploitation réserve octets (ou 32 secteurs) pour la GPT, le premier secteur utilisable du disque se trouve donc à l'adresse 34 (LBA 34).

Avertissement d'Apple : « Il ne faut pas présupposer que la taille d'un bloc sera toujours de 512 octets. » Les périphériques de stockage moderne comme les SSD peuvent contenir des LBA de et certains disques magnéto-optiques (MO) utilisent des secteurs de octets (néanmoins les disques MO sont typiquement non-partitionnés). Les fabricants de disques durs envisagent de passer à des secteurs de octets. Début 2010 le premier à vendre de tels disques utilise un middleware qui peut donner l'illusion au système d'exploitation d'un disque de secteurs de .

Typiquement, les disques démarrant les Macintosh sous processeur Intel sont formatés avec une table de partitionnement GUID plutôt qu'avec l'Apple Partition Map (APM).

GPT offre aussi de la redondance en écrivant l'entête et la table de partitionnement au début et à la fin du disque.

L'héritage du MBR (LBA 0) Sur un disque MBR, le MBR se trouve à l'adresse 0 (LBA). Dans les spécifications de GPT, à cette même adresse se trouve une structure qui protège les disques GPT des écritures provenant dutilitaires disques qui ne (re)connaissent pas les informations de GPT. Cette structure est appelée MBR protecteur (protective MBR). Ce MBR protecteur décrit une seule partition de type 0xEE qui recouvre tout le disque GPT. Si la taille du disque excède 2 To, correspondant à la taille maximum représentable avec une adresse (LBA) 32 bits et des blocs de 512 octets, le MBR protecteur décrit alors une partition de 2 To, ignorant le reste du disque. Les systèmes ou logiciels qui ne connaissent pas GPT voient le disque complètement plein ayant une seule partition d'un type inconnu et refusent de modifier le disque à moins d'effacer cette partition. Cela permet de minimiser les risques d’effacement accidentel. De plus sur les systèmes compatibles avec GPT, la moindre anomalie concernant le MBR protecteur (type non 0xEE ou encore la présence de plusieurs partitions) devrait empêcher la manipulation des informations concernant GPT.

Le MBR protecteur contient aussi le programme de démarrage (bootloader) utilisé par les systèmes BIOS (non-EFI) capables de démarrer sur de tels disques.

Emplacement de GPT Pour éviter une confusion dans le vocabulaire, précisons ici que : GPT : signifiant Table de Partitionnement GUID, désigne l'ensemble formé de l’entête et du tableau des partitions ; entête : désigne l'entête de GPT ; tableau des partitions (ou tableau de descripteurs de partition) : désigne la liste des descripteurs de chaque partition ( Partition Entry Array).

Comme l'indique le schéma, il y a deux GPT sur le disque dur, l'un primaire, l'autre secondaire (sauvegarde du premier). Le primaire se situe au début du disque alors que le secondaire se situe à la fin du disque, leurs structures entête/descripteurs étant inversées.

Structure globale du disque : MBR protecteur (début du disque dur) GPT primaire : entête GPT primaire : tableau de partitions Partitions : début de la partition 1 ... Partitions : fin de la partition n GPT secondaire : tableau de partitions GPT secondaire : entête (fin du disque dur)

L'entête de GPT (LBA 1 et -1) L'entête de GPT définit les blocs utilisables sur le disque ainsi que les nombres et la taille des descripteurs de la table de partitionnement. Sur les ordinateurs sous Windows Serveur 64-bit, 128 partitions peuvent être créées. Il y a 128 descripteurs réservés de chacun. La spécification de EFI impose que la table de partitionnement fasse au moins ce qui laisse la place pour 128 descripteurs.

L'entête de GPT contient le GUID du disque (Globally Unique Identifier, identifiant globalement unique). Il enregistre sa taille et son emplacement (toujours LBA 1 pour l'entête primaire) ainsi que la taille et l'emplacement de l'entête de GPT secondaire (le dernier secteur du disque pour l'entête primaire ; ces deux valeurs sont inversées pour l'entête secondaire). Il contient aussi deux checksums CRC32, l'un pour l'entête lui-même, l'autre pour le tableau de partitions. Ils peuvent être vérifiés au démarrage par le firmware, par le programme de démarrage (bootloader) et/ou par le système d'exploitation. Lorsqu'un des checksums CRC32 de l'entête primaire est incorrect, le contenu du GPT secondaire est recopié sur le GPT primaire, normalement sous contrôle de l'utilisateur ou de l'exploitant de la machine, avec enregistrement dans un journal d'évènements. Dans le cas où les deux GPT seraient invalides le disque devient inutilisable. À cause des CRC, les éditeurs hexadécimaux ne doivent pas être utilisés pour modifier le contenu du GPT, une telle modification rendant le CRC32 invalide.

+ Format de l'entête GPT Offset Longueur Contenu 0 Signature ("EFI PART", 45 46 49 20 50 41 52 54) 8 Version (Pour la version 1.0, la valeur est 00 00 01 00, 1,0 en virgule fixe 16:16) 12 Taille de l'entête (en octets, habituellement 5C 00 00 00 signifiant ) 16 CRC32 de l'entête (de 0 à - la taille de l'entête), avec ce champ à zéro pendant le calcul du crc32. 20 Réservé, doit être initialisé à zero 24 Adresse de cet entête GPT (emplacement de cet entête ; devrait être 1, le deuxième secteur du disque, pour l'entête primaire) 32 Adresse de l'entête de l'autre GPT (ou backup ; devrait être le dernier secteur du disque pour l'entête primaire, et 1 pour l'entête secondaire) 40 Première adresse utilisable pour les partitions 48 Dernière adresse utilisable pour les partitions (à l'adresse suivante se trouve normalement la table de partitionnement secondaire) 56 GUID du disque (aussi désigné comme UUID sur les UNIX) 72 Adresse du tableau des partitions (normalement 2 pour le GPT primaire) 80 Nombre de descripteurs de partition 84 Taille en octets d'un descripteur de partition (habituellement 128) 88 CRC32 de la table des partitions 92 * réservé, la fin du bloc devrait être initialisée à zéro ( sur un bloc de ) LBA Size TOTAL

Descripteurs de partitions ou éléments du Tableau des partitions (LBA 2 à 33 et -33 à -2) GPT reste simple et direct pour décrire les partitions. Les 16 premiers octets désignent le type GUID de la partition. Par exemple, le GUID pour une partition EFI est {C12A7328-F81F-11D2-BA4B-00A0C93EC93B}. Les suivants contiennent un GUID unique de la partition. Viennent ensuite 2×8 octets pour les adresses de début et de fin de la partition. Enfin de la place est allouée pour stocker les noms et attributs des partitions. Comme c'est le but et la nature même des GUID et selon la qui les décrit, il n'est nul besoin de registre central pour s'assurer de l'unicité des GUID des partitions.

+ Format des entrées (descripteurs) de partition de GPT Offset Longueur Contenu 0 Type GUID de la partition 16 GUID unique pour la partition 32 Première adresse (LBA, little-endian) 40 Dernière adresse (LBA, inclusive, et habituellement impaire) 48 Les attributs, les drapeaux ou flags (par exemple, le bit 60 indique une partition en lecture seule) 56 Le nom de la partition (36 caractères codé en UTF-16LE) 128 TOTAL

Avertissement d'Apple : « Il ne faut pas coder en dur une taille de descripteur de 128 octets ». la taille d'un descripteur est en effet fournie dans l'en-tête GPT à l'offset 84. Microsoft TechNet considère que les attributs sont divisés en deux moitiés : les 4 premiers octets représentent des attributs indépendants des partitions, et les suivants des attributs dépendants des partitions. Microsoft utilise les bits suivants en général.

+ Les attributs des partitionsBit Contenu 0 partition système (l'outil d'installation doit réserver la partition comme telle) 2 amorçable par d'anciens BIOS (équivalent de l'indicateur 80h Active pour les MBR) 60 lecture seule62 cachée63 ne pas monter (mount) automatiquement (ni assigner de lettre)

Compatibilité des OS et GPT Les MBR hybrides ne sont pas standard et peuvent être interprétés de différentes façons par différents OS. Sauf indication contraire, les OS considèrent en priorité les informations de GPT lorsqu'ils se trouvent en présence d'un MBR hybride.

Le terme Aucune prise en charge sur cette architecture et version. doit être compris comme : Non pris en charge en tant que disque de données, seules les partitions trouvées dans le MBR protecteur sont accessibles par l'OS. Gère le partitionnement MBR dans le cas des disques amovibles. Pas d'accès aux données pour les applications des utilisateurs. Les données brutes contenues dans les partitions GPT sont accessibles via des outils d'administration disque de bas niveau fournis par des tiers. L'accès en lecture ou en écriture au système de fichiers peut être réalisé grâce à des logiciels tiers.

Les systèmes d'exploitation basés sur Unix OSVersion/ÉditionPlate-formeLire et écrire sur GPT à partir de GPTNoteFreeBSDDepuis 7.0x86, x86-64Dans le cas d'une configuration hybride, les identifiants de partition et GPT et MBR peuvent être utilisés conjointement.GNU/LinuxLa majorité des distributions GNU/Linux x86, x86-64. Parmi les premières, Fedora 8+ et Ubuntu 8.04+.x86-64, IA-64, x86Certains outils comme les anciennes versions de fdisk ne gèrent pas GPT. Ils sont remplacés par de nouveaux outils comme gdisk., parted ou son interface gpartedManuel Debian, Astuce du système, grub et grub2 pour gérer GPT.Mac OS XDepuis la 10.4.0 (certaines propriétés depuis la 10.4.6).x86, x86-64Seuls les ordinateurs Mac Intel et Apple silicon peuvent amorcer à partir de GPTNetBSDDepuis 6.0.x86., x86-64.Certains utilisateurs décrivent leur procédure d'installation avec EFI. mais l'annonce officielle du support n'a pas encore été faite. Une installation UEFI semi-manuelle fonctionne pour NetBSD 8.0 (-current).OpenBSDDepuis 5.9x86-64SolarisDepuis Solaris 10x86, x86-64, SPARC

Windows 32-bit