Table de partition Intel

From CGSecurity
Jump to navigation Jump to search

En.png English De.png Deutsch Es.png Español Fr.png Français Ru.png Русский


Comment la Table de Partition est-elle écrite ?

Une entrée en table des partitions occupe 16 octets. La position et la taille d'une partition sont représentées sous les formats CHS et LBA. Le format CHS (Cylindre, Tête (head), Secteur) utilisé dans les entrées de la table des partitions est limité par sa conception ancienne, ainsi les valeurs maximales CHS sont respectivement 1023,254,63. Donc le format CHS ne peut définir une partition se terminant après 8 Go.

Il y a deux manières de stocker une valeur CHS:

  • première méthode
 convertir LBA en CHS,
 stocker (cylindre & 0x3FF, tete & 0xFF, secteur & 0x3F)

C'est ce que Partition Magic fait (version précédente à la 8.0?).

  • seconde méthode
 convertir LBA en CHS
 if cylindre <= 1023,
   stocker (cylindre & 0x3FF, tete & 0xFF, secteur & 0x3F)
 else
   stocker (1023, max_tete & 0xFF, max_secteur & 0x3F)

C'est ce que fdisk de Linux et TestDisk font.


Lorsque TestDisk vérifie la table de partition, il considère que les deux méthodes peuvent être correctes. Mais la deuxième méthode est préférable car les données restent cohérentes: le CHS de début est toujours plus petit ou égal au CHS de fin.

Exemple: La géométrie d'un disque dur est de 255 têtes par cylindre et de 63 secteurs par tête. Une partition commence à LBA=46781280 ou CHS=2912,0,1. Cette partition finit à 3072,254,63.

  • Première méthode:
 début:  864,  0, 1
 fin:      0,254,63
  • Seconde méthode:
 début: 1023,254,63
 fin:   1023,254,63


NB: 1023 = 0x3FF (1023*255+254)*63+63-1=16450559 (2912*255+ 0)*63+ 1-1=46781280

Partition Magic (avant la version 8.0?) considérait la seconde méthode comme invalide alors même qu'il s'agit d'un standard. TestDisk supporte les deux méthodes de stockage sans signaler de problème.

Retour à la page principale de TestDisk.