Maintenant que les disques basiques MBR (partitions primaires et étendues) n’ont plus de secrets pour nous, nous allons nous intéresser au disques basiques GPT.
Reprenons le schéma qui décrit la structure d’un disque basique GPT et essayons de voir à quoi cela ressemble concrètement.
Commençons par le secteur 0:
Remarques:
Partition table entry
Start head : 0
End head : FF (255)
Start sector : 2
End Sector : 3F (63)
Start Cylinder : 0
End Cylinder : 3FF (1023)
Relative Sector : 1
Total Sectors : FFFFFFFF (4294967295)
Partition Type : EE (GPT)
Le MBR est dit “protecteur” car il contient une partition qui couvre tout le disque (Relative Sector 1 / Total Sectors FFFFFFFF), et aussi car nous avons des secteurs importants
Voici ce à quoi ressemble le secteur 1 :
Ce secteur est le GPT Header et contient ces informations :
Partition
Offset
Size
Sample value
Meaning
Sector Signature
0
8 bytes
"EFI PART"
Version
8
4 bytes
00 00 01 00
0.1
Header size
C
5C 00 00 00
5C
CRC32 of the header
10
0D 2C 34 EA
3929287693
Reserved
14
Current GPT Header Address
18
01 00 00 00 00 00 00 00
1
Backup GPT Header Address
20
FF FF DF 0F 00 00 00 00
266338303
First usable LBA
28
22 00 00 00 00 00 00 00
34
Last usable LBA
30
DE FF DF 0F 00 00 00 00
266338270
Disk GUID
38
16 bytes
85 A1 7E 9C 2D 05 3B 4A AC DD D1 FF 8F 7B 22 4A
9C7EA185-052D-4A3B-ACDD-D1FF8F7B224A
Partition Table Address
48
02 00 00 00 00 00 00 00
2
Partition Count
50
80 00 00 00
128
Partition Table Entry Size
54
CRC32 of partition table
58
3E C0 26 26
640073790
Toutes les données sont importantes, mais celles qui nous intéressent pour faire des réparations sont :
Cette structure est décrite sur http://msdn.microsoft.com/en-us/library/windows/desktop/aa365449(v=vs.85).aspx
Regardons le secteur 2 : Début de la table de partition.
Il faut y voir 4 régions de 128 bytes chacune : Une entrée dans la table de partition fait 128 bytes
Dans le cas présent, les 2 premières entrées sont occupées et les autres sont vides
Première entrée
Partition Table Entry
Partition Type
16 E3 C9 E3 5C 0B B8 4D 81 7D F9 2D F0 02 15 AE
E3C9E316-0B5C-4DB8-817D-F92DF00215AE
Partition GUID
7C C6 D3 BB F9 D2 5F 42 9F 2C 7D CF 1F 1D 8B E5
BBD3C67C-D2F9-425F-9F2C-7DCF1F1D8BE5
Starting LBA
Ending LBA
21 00 04 00 00 00 00 00
262177
Attribute flags
00 00 00 00 00 00 00 00
Partition Name
72 bytes
… too long…
Microsoft Reserved Partition
Seconde entrée
80+0
A2 A0 D0 EB E5 B9 33 44 87 C0 68 B6 B7 26 99 C7
EBD0A0A2-B9E5-4433-47C0-68B6B72699C7
80+10
BE 9C FD 21 F3 E8 40 49 8C C2 57 30 0A A8 1E B6
21FD9CBE-E8F3-4940-8CC2-57300AA81EB6
80+20
00 08 04 00 00 00 00 00
264192
80+28
FF F7 DF 0F 00 00 00 00
266336255
80+30
80+38
Basic data partition
Vous pourrez trouver des informations complémentaires sur ces structures dans l’article http://msdn.microsoft.com/en-us/library/windows/desktop/aa365449(v=vs.85).aspx
Plus d’informations sur la Microsoft Data Partition (MSR) dans la FAQ GPT:
http://msdn.microsoft.com/en-us/library/windows/hardware/dn640535(v=vs.85).aspx#gpt_faq_what_is_msr
Donc, la première entrée est pour la MSR et la seconde pour la partition de données de type « Basic Data Partition ».
Puisqu’il s’agit d’une partition NTFS, nous pouvons trouver les NTFS Boot Sectors aux LBA 264192 et 266336255
Et voilà:
On peut y lire:
Déjà on retrouve notre signature 55 AA (qui commençait à manquer un des mes amis blogueurs)
Le NTFS Boot sector de backup montrera la même information.
Le GPT Header nous avait parlé du Last Usable LBA (266338270)
Le LBA juste après montre bien une copie de la table de partition (266338270 + 1 = 266338271 )
Un espace de 128 entrées (si on en prend 4 par secteur de 512 ça fait 32 secteurs) est reservé pour y stocker toute la table de partitions
Les angoissés qui aiment que tout soit bien aligné éprouveront sans doute un plaisir non caché en constatant que 26638271 + 32 = 266338303 : C’est exactement l’emplacement du GPT Header alternatif.
C’est vrai que c’est rassurant quand même … quelque part … moi, je trouve ça rassurant.
Comme on adore les schémas qui montre la beauté de l’alignement des secteurs, en voici un qui reprend les valeurs que nous avons trouvées.
Voilà, vous savez désormais tout sur la façon dont les partitions sont référencées dans des disques GPT. Dans le prochain article, nous allons voir où peuvent se glisser des corruptions et comment les réparer (ou pas).
Serge Gourraud55 AA