Recupération de partitions III : Structures des disques basiques MBR - Les partitions étendues
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 |
0 |
0 |
0 |
Starting Head |
20 = 32 |
254 |
254 |
254 |
Starting Sector |
21 = 33 |
63 |
63 |
63 |
Starting Cylinder |
0 |
1023 |
1023 |
1023 |
System ID |
07 (NTFS) |
07 (NTFS) |
07 (NTFS) |
0F (Extended) |
Ending Head |
FE = 254 |
254 |
254 |
254 |
Ending Sector |
63 |
63 |
63 |
63 |
Ending Cylinder |
1023 |
1023 |
1023 |
1023 |
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:
Partition |
Entry 1 |
Entry 2 |
Entry 3 |
Entry 4 |
Boot indicator |
0 |
0 |
0 |
0 |
Starting Head |
254 |
254 |
0 |
0 |
Starting Sector |
63 |
63 |
0 |
0 |
Starting Cylinder |
1023 |
1023 |
0 |
0 |
System ID |
07 (NTFS) |
05 (Extended) |
0 |
0 |
Ending Head |
254 |
254 |
0 |
0 |
Ending Sector |
63 |
63 |
0 |
0 |
Ending Cylinder |
1023 |
1023 |
0 |
0 |
Relative Sector |
00000800 = 2048 |
00FA0800 = 16386048 |
0 |
0 |
Total Sectors |
005DB800 = 6141952 |
003E8000 = 4096000 |
0 |
0 |
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:
Partition |
Entry 1 |
Entry 2 |
Entry 3 |
Entry 4 |
Boot indicator |
0 |
0 |
0 |
0 |
Starting Head |
254 |
254 |
0 |
0 |
Starting Sector |
63 |
63 |
0 |
0 |
Starting Cylinder |
1023 |
1023 |
0 |
0 |
System ID |
07 (NTFS) |
05 (Extended) |
0 |
0 |
Ending Head |
254 |
254 |
0 |
0 |
Ending Sector |
63 |
63 |
0 |
0 |
Ending Cylinder |
1023 |
1023 |
0 |
0 |
Relative Sector |
00000800 = 2048 |
00FA0800 = 16386048 |
0 |
0 |
Total Sectors |
005DB800 = 6141952 |
003E8000 = 4096000 |
0 |
0 |
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
Comments
- Anonymous
January 06, 2015
Il arrive que les structures qui décrivent les partitions sur les disques soient perdues ou corrompues