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