Recupération de partitions III : Structures des disques basiques MBR - Les partitions étendues
Dans l’article précédent, nous avons vu un exemple de partitionnement contenant une et plusieurs partitions primaires. Afin de pouvoir mettre plus de quatre partitions sur un disque, il existe un système de partition étendue. En quelques mots :
- Si vous souhaitez 1 à 4 partitions : Vous aurez 4 partitions primaires
- Si vous souhaitez 5 partitions ou plus : Vous aurez 3 partitions primaires et 1 partition étendue contenant autant de volumes que souhaité.
Si on observe la table de partition à l’éditeur hexa, on sait qu’il n’y a la place que pour 4 entrées et on voit bien que les 4 entrées sont occupées.
La dernière entrée a ceci de particulier qu’elle est de type 0x0F (partition étendue), et qu’elle occupe 30722048 secteurs (ce qui nous donnerait à peu près 14 GB pour des secteurs de 512 Bytes)
Donc, si nous refaisons notre petit tableau récapitulatif:
Partition
Partition 1
Partition 2
Partition 3
Partition 4
Boot indicator
0
Starting Head
20 = 32
254
Starting Sector
21 = 33
63
Starting Cylinder
1023
System ID
07 (NTFS)
0F (Extended)
Ending Head
FE = 254
Ending Sector
Ending Cylinder
Relative Sector
00000800 = 2048
07547000 = 122974208
0A61B000 = 174174208
0E0B3000 = 235614208
Total Sectors
07546800 = 122972160
030D4000 = 51200000
03A98000 = 61440000
01D4C800 = 30722048
Avant d’aller plus loin regardons à quoi ressemble le premier secteur d’une partition NTFS. La première partition (PPart01) est sensé démarrer au secteur 2048, et voici le secteur 2048 :
Nous détaillerons le contenu de ce secteur dans la partie 4, mais pour l’instant nous avons juste besoin de savoir que ce secteur est signé "55 AA" et qu’il contient bien le OEM ID "NTFS".
Regardons maintenant ce qui se trouve au secteur 235614208 (entrée de la 4ième partition). Il est quasiment vide, mais nous pouvons y reconnaitre une nouvelle table de partition dans la partie inférieure.
Cette table de partition contient deux entrées:
En passant tout ça à la moulinette, on peut construire ce petit tableau:
Entry 1
Entry 2
Entry 3
Entry 4
05 (Extended)
00FA0800 = 16386048
005DB800 = 6141952
003E8000 = 4096000
Quand on parcours une partition étendue, le Relative Sector ne fait pas référence au début du disque, mais au début de la partition étendue.
Comme notre partition étendue démarre au secteur 235614208, le premier volume NTFS devrait se trouver au secteur 235616256 ( = 235614208 + 2048 )
Cela reseemble bien à un secteur NTFS:
Maintenant, regardons ce qui se trouve à la seconde entrée de la table de partition. Son Relative Sector est 10242048 et la partition étendue démarrait au secteur 235614208. Donc l’entrée doit nous faire pointer vers le secteur 245856256 ( = 235614208 + 10242048 ). Allons voir :
C'est une nouvelle table de partition contenant ces informations:
La partition NTFS suivante démarre au secteur 245858304 ( = 245856256 + 2048 ) et la prochaine table de partition au secteur 252000256 ( = 235614208 + 16386048 )
Comme nous n’avons que 3 volumes dans la partition étendue, ce table de partition devrait être la dernière qui pointe vers une partition NTFS et nous n’avons qu’une seule entrée puisque nous n’avons pas d’autres volumes à déclarer.
Voilà comment Windows s’y prend pour faire entrer plusieurs partitions dans des tables qui ne peuvent en contenir que 4.
Dans l’article suivant, nous allons détailler le contenu d’un secteur d’amorçage NTFS afin de pouvoir commencer les réparations.
Serge Gourraud
55 AA