- GUID Partition Table
-
Dans le domaine du matériel informatique, une table de partitionnement GUID, en anglais GUID Partition Table (GPT) est un standard pour décrire la table de partitionnement d'un 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 (241 octets)[1]. GPT gère les disques durs et partitions jusqu'à 9.4 Zo (273 octets)[1],[2].
Le support de GPT parmi les principaux systèmes reste limité (voir OS et GPT).
Historique
La table de partitionnement du MBR, aujourd'hui très répandue, date du début des années 80. Dès la fin des années 90, 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 étant un sous-ensemble des spécifications de UEFI[3].
Caractéristiques
La table de partitionnement basée sur le MBR est situé dans le MBR lui-même, qui, dans le cas d'un système utilisant BIOS, contient aussi le programme de démarrage du système. Dans GPT, les informations concernant la table de partitionnement sont stockés dans un entête GPT, mais pour garantir une compatibilité (avec les logiciels parlant MBR mais pas GPT), GPT maintient une entrée MBR (dit protecteur) suivi 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 Cylindre/Tête/Secteur (cylinder-head-sector, CHS). 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 à l'adresse 2 (LBA 2). Sur les versions 64-bit de Windows, le système d'exploitation réserve 16,384 octets (ou 32 secteurs) pour la GPT, le premier secteur utilisable du disque se trouve donc à l'adresse 34 (LBA 34).
Avertissement d'Apple [4]: « 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 1024 octets et certains disques magnéto-optiques (MO) utilisent des secteurs de 2048 octets (néanmoins les disques MO sont typiquement non-partitionnés). Les fabricants de disques durs envisagent de passer à des secteurs de 4096 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 512 octets[5].
Typiquement, les disques démarrant les Macintoshs sous processeurs 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, et 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 d'utilitaires disques qui ne (re)connaissent pas les informations de GPT. Cette structure est appelé 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 entête et 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 ((en)Partition Entry Array).
Comme l'indique le schéma, il y a deux GPT sur le disque dur, l'un primaire, l'autre secondaire (backup 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 128 octets chacun. La spécification de EFI impose que la table de partitionnement fasse au moins 16384 octets 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. Lorsque un des checksums CRC32 de l'entête primaire est incorrect, le contenu du GPT secondaire sera 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é pour modifier le contenu du GPT, une telle modification rendant le CRC32 invalide.
Format de l'entête GPT Offset Longueur Contenu 0 8 octets Signature ("EFI PART", 45 46 49 20 50 41 52 54) 8 4 octets Version (Pour la version 1.0, la valeur est 00 00 01 00, 1,0 en virgule fixe 16:16) 12 4 octets Taille de l'entête (en octet, habituellement 5C 00 00 00 signifiant 92 octets) 16 4 octets CRC32 de l'entête (de 0 à 92 octets - la taille de l'entête), avec ce champ à zéro pendant le calcul du crc32. 20 4 octets Réservé, doit être initialisé à zero 24 8 octets 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 8 octets 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 8 octets Première adresse utilisable pour les partitions 48 8 octets Dernière adresse utilisable pour les partitions (à l'adresse suivante se trouve normalement la table de partitionnement secondaire) 56 16 octets GUID du disque (aussi désigné comme UUID sur les UNIX) 72 8 octets Adresse du tableau des partitions (normalement 2 pour le GPT primaire) 80 4 octets Nombre de descripteurs de partition 84 4 octets Taille en octet d'un descripteur de partition (habituellement 128) 88 4 octets CRC32 de la table des partitions 92 * réservé, la fin du bloc devrait être initialisé à zéro (420 octets sur un bloc de 512 octets) LBA Size TOTAL Descripteurs de partitions ou éléments du Tableau des partitions (LBA 2 à 33 et -33 à -2)
GPT reste simple et directe 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 16 octets suivants contient un GUID unique de la partition. Viennent ensuite 2x8 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, 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 16 octets Type GUID de la partition 16 16 octets GUID unique pour la partition 32 8 octets Première adresse (LBA, little-endian) 40 8 octets Dernière adresse (LBA, inclusive, et habituellement impaire) 48 8 octets Les attributs, les drapeaux ou flags (par exemple, le bit 60 indique une partition en lecture seule) 56 72 octets 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."[6] Microsoft Technet dit que les attributs sont divisés en deux moitiés : les 4 premiers octets représentent des attributs indépendants des partitions, et les 4 octets suivants des attributs dépendants des partitions. Microsoft utilise les bits suivants en général.
Les attributs des partitions Bit Contenu 0 partition système (l'outil de partitionnement doit réserver la partition comme tel) 2 amorçable par d'anciens BIOS (équivalent de l'indicateur 80h Active pour les MBR)[7] 60 lecture seule 62 cachée 63 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[8].
Le terme Aucun support sur cette architecture et version. doit être compris comme :
- Non supporté en tant que disque de données[9], seules les partitions trouvées dans le MBR protecteur sont accessible 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 contenu dans les partitions GPT sont accessible 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'exploitations basés sur Unix
OS Version/
EditionPlateforme Boot à partir de GPT sur un PC/BIOS Boot à partir de GPT sur un EFI Note FreeBSD Depuis 7.0 x86, x86-64 Oui Oui Dans le cas d'une configuration hybride, les identifiants de partition et GPT et MBR peuvent être utilisés conjointement. Linux La majorité des distributions Linux IA-64 et x86
x86-64, IA-64, x86 Oui Oui Certains outils comme fdisk ne gèrent pas GPT. Ils sont remplacés par de nouveaux outils comme gdisk[11], grub .96+ patches et grub2 pour gérer GPT. Mac OS X Depuis la 10.4.0 (certaines propriétés depuis la 10.4.6) [12] x86, x86-64 Non Oui Solaris Depuis Solaris 10 x86, x86-64, SPARC Non (en cours) Non (en cours) Windows 32-bit
Il existe un problème, documenté[réf. souhaitée], concernant les versions précédentes[Lesquelles ?] de Windows 32-bit, qui touche les disques durs de plus de deux teraoctets originellement partitionnés via GPT sous un Windows Server 64-bit[Lequel ?] sur lequel les données écrites au delà de ses limites se retrouvaient écrites au début du disque dur détruisant ainsi les données utilisateurs, la structure du file system et même les informations du format du disque dur (NDT : the harddisk formatting information). Ceci était dû aux pilotes 32-bit des fabricants, et cela même malgré la bonne réputation de certains[Lesquels ?]. Avec l'arrivée de Windows Vista et des mises à jour des pilotes compatibles avec les anciennes versions de l'OS, ce problème des deux teraoctets a plus ou moins disparu depuis 2006. Ce problème n'est pas vraiment du fait de GPT mais a suivi GPT puisque GPT est la seule manière de gérer plus de deux teraoctets d'espace sur un disque.
OS Version/
ÉditionPlateforme Boot à partir de GPT sur un PC/BIOS Boot à partir de GPT sur un EFI Note Windows XP (2001-10-25) x86 Non Non Aucun support sur cette architecture et version. Windows Server 2003 (2003-04-24) x86 Non Non Aucun support sur cette architecture et version. Windows Server 2003 Service Pack 1 (2005-03-30) x86 Non Non Disque Données (Data Disk) seulement [9] Le MBR a la priorité dans le cas d'une configuration hybride. Windows Vista (2006-07-22) x86 Non Non Le MBR a la priorité dans le cas d'une configuration hybride. Windows Server 2008 (2008-02-27) x86 Non Non Le MBR a la priorité dans le cas d'une configuration hybride. Windows 7 (2009-10-22) x86 Non Non Le MBR a la priorité dans le cas d'une configuration hybride[8]. Windows 64-bit
La table ci-dessous énumère seulement[précision nécessaire] les versions Windows 64-bit qui supportent GPT. Celles-ci sont les versions 64-bit pour les machines basées sur les processeurs IA-64, ayant donc un firmware EFI et supportant d'amorcer sur un disque avec GPT, ce dernier étant le choix de partitionnement par défaut. Les machines x64, avec processeurs x86-64 également dénommés AMD64, EM64T ou Intel64, dont le support de GPT était initialement limité, sont capables d'amorcer à partir d'un firmware UEFI depuis un disque GPT avec l'arrivée de Windows Server 2008 et le service pack 1 de Windows Vista.
Les soi-disant versions "Windows XP" listées ci-dessous sont en fait, techniquement, plus proches de la version de Windows Server mentionnée conjointement.
OS Version/
ÉditionPlateforme Boot à partir de GPT sur PC/BIOS Boot à partir de GPT sur EFI/UEFI Note Windows XP 64-bit (2001-10-25) IA-64 Non Oui Le MBR a la priorité dans le cas d'une configuration hybride. Le mode de partitionnement par défaut est GPT. Gère seulement le partitionnement MBR dans le cas des disques amovibles. Windows XP 64-bit, Version 2003 (2003-03-28)
(version Workstation de Windows Server 2003 64-bit)IA-64 Non Oui Le MBR a la priorité dans le cas d'une configuration hybride. Le mode de partitionnement par défaut est GPT. Gère seulement le partitionnement MBR dans le cas des disques amovibles. Windows Server 2003 64-bit (2003-04-24) IA-64 Non Oui Le MBR a la priorité dans le cas d'une configuration hybride. Le mode de partitionnement par défaut est GPT.[13] Windows Server 2003 x64, Service Pack 1 (2005-04-25) x86-64 Non Non Disque de données seulement[9]. Le MBR a la priorité dans le cas d'une configuration hybride. Windows XP Professional x64 (2005-04-25)
(version Workstation Windows Server 2003 x64)x86-64 Non Non Disque de données seulement[9]. Le MBR a la priorité dans le cas d'une configuration hybride. Windows Vista (2006-07-22) x86-64 Non Oui[réf. nécessaire] Le MBR a la priorité dans le cas d'une configuration hybride. Windows Server 2008
Windows Vista, Service Pack 1(2008-02-27) x86-64, IA-64 Non Oui Le MBR a la priorité dans le cas d'une configuration hybride. Windows 7 (2009-10-22) x86-64 Non Oui Le MBR a la priorité dans le cas d'une configuration hybride[8]. Windows Server 2008 R2 (2009-10-22)
(version serveur de Windows 7)x86-64, IA-64 Non Oui Le MBR a la priorité dans le cas d'une configuration hybride. GUIDs des types de partition
Assoc. OS Type de partition Identifiant Globalement Unique (GUID)[14] (None) Non utilisé 00000000-0000-0000-0000-000000000000 schéma de partionnement MBR 024DEE41-33E7-11D3-9D69-0008C781F39F partition système EFI C12A7328-F81F-11D2-BA4B-00A0C93EC93B BIOS Boot partition 21686148-6449-6E6F-744E-656564454649 Windows Microsoft Reserved Partition E3C9E316-0B5C-4DB8-817D-F92DF00215AE en:Basic data partition[2] EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 partition de métadonnées en:Logical Disk Manager 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3 partition de données en:Logical Disk Manager AF9B60A0-1431-4F62-BC68-3311714A69AD en:Windows Recovery Environment DE94BBA4-06D1-4D40-A16A-BFD50179D6AC partition en:IBM General Parallel File System (GPFS) 37AFFC90-EF7D-4e96-91C3-2D7AE055B174 HP-UX Data partition 75894C1E-3AEB-11D3-B7C1-7B03A0000000 Service Partition E2A1E728-32E3-11D6-A682-7B03A0000000 Linux Data partition[2] EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 tranche de volume RAID A19D880F-05FC-4D3B-A006-743F0F84911E partition d'échange (swap) 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F partition gérée par volumes logiques (LVM) E6D6D379-F507-44C2-A23C-238F2A3DF928 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 Mac OS X Hierarchical File System (HFS+) partition 48465300-0000-11AA-AA11-00306543ECAC Apple UFS 55465300-0000-11AA-AA11-00306543ECAC ZFS[3] 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 426F6F74-0000-11AA-AA11-00306543ECAC Apple Label 4C616265-6C00-11AA-AA11-00306543ECAC Apple TV Recovery partition 5265636F-7665-11AA-AA11-00306543ECAC Solaris 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[3] 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[4] 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 - a b Linux et Windows utilisent le même GUID pour leur partition données respectives.
- a b Le GUID pour
/usr
sur Solaris est utilisé en tant que GUID générique sur ZFS par Mac OS X. - ^ Les définitions sont sur src/sys/sys/disklabel_gpt.h. NetBSD a utilisé les GUIDs de FreeBSD avant de créer ses propres uniques GUIDs.
Articles connexes
Liens externes
- Microsoft TechNet: Disk Sectors on GPT Disks
- Microsoft TechNet: Using GPT Drives on x86-64 Systems
- Apple Developer Connection: Secrets of the GPT
- Make the most of large drives with GPT and Linux
- GPT fdisk : Information on Hybrid GPT-MBR, Converting MBR and BSD disklabels to GPT and Booting from GPT disks
- Microsoft : FAQs on Using GPT disks in Windows
- A forum post describing steps to modify existing Windows x64 BIOS-MBR based installations to boot from UEFI-GPT
Références
- FAQ: Drive Partition Limits (pdf), UEFI Forum. Consulté le 2010-06-09.
- FAQ: Drive Partition Limits, Redmondmag.com (2002-07-01). Consulté le 2010-06-09. « GPT disks also support very large partitions thanks to a 64-bit Logical Block Address scheme. A logical block corresponds to one sector, or 512 bytes, yielding a maximum theoretical capacity of eight zettabytes, » Bill Boswell :
- Bruce J. Nikkel, « Forensic analysis of GPT disks and GUID partition tables », dans Digital Investigation, vol. 6, no 1-2, septembre 2009, p. 39–47 :
« 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 GUID (globally unique identification) Partition Tables, or GPT, intended to replace the DOS/MBR partition tables. »
- Technical Note TN2166: Secrets of the GPT, Apple
- Western Digital offre 11% d'espace disque en plus, Clubic
- http://developer.apple.com/mac/library/technotes/tn2006/tn2166.html#SECGPTOVERVIEW
- (en)e09127r3 EDD-4 Hybrid MBR boot code annex [PDF]
- . Sauf indication contraire, les OS considèrent en priorité les informations de GPT lorsqu'ils se trouvent en présence d'un MBR hybride.
- Windows and GPT FAQ, Microsoft
- Ubuntu on MacBook, Ubuntu Community Documentation
- GPT fdisk for Linux
- Myths and Facts About Intel Macs, rEFIt
- http://codeidol.com/windows/inside-windows-server-2003/Configuring-Data-Storage/Working-with-GPT-Disks/ Working with GPT Disks: Le disque de démarrage pour un système IA-64 doit être un disque GPT. Les autres disques dans système IA-64 peuvent être avec un MBR ou GPT.
- little-endian. Par exemple, le GUID pour une partition EFI System est écrit ici C12A7328-F81F-11D2-BA4B-00A0C93EC93B, ce qui correspond à la séquence de 16 octets 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B — seul les trois premiers blocs sont inversés. Les GUIDs dans cette table sont écrits en
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « GUID Partition Table » (voir la liste des auteurs)
Catégorie :- Amorçage de l'ordinateur
Wikimedia Foundation. 2010.