Intel-Partitionstabelle

From CGSecurity
Jump to: navigation, search

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


Wie ist die Partitionstabelle geschrieben?

CHS (Cylinder, Head, Sector)-Werte sind von einer eingestellten Anzahl von Bits für jeden Wert in der 16-Byte-Partitionstabelle begrenzt auf: 1023,254,63. Also können LBA und CHS-Werte nicht gleich für Festplatten größer als 8 GB sein.

Es gibt zwei Arten, den CHS-Wert zu speichern:

  • erster Weg
 konvertiere LBA zu CHS,
 speichere (cylinder & 0x3FF, head & 0xFF, sector & 0x3F)

Das ist was Partition Magic (Versionen früher als 8.0?) macht.

  • zweiter Weg
 konvertiere LBA zu CHS
 wenn cylinder <= 1023,
   speichere (cylinder & 0x3FF, head & 0xFF, sector & 0x3F)
 sonst
   speichere (1023, max_head & 0xFF, max_sector & 0x3F)

Dies ist, was Linux-fdisk und TestDisk tun.


Wenn TestDisk die Partitionstabelle überprüft, berücksichtigt es das beide Wege richtig sein können. Aber der zweite Weg ist besser, weil der CHS-Anfang ist immer niedriger oder gleich zum CHS-Ende.

Beispiel: Die logische Geometrie einer Festplatte sind 255 Köpfe pro Zylinder und 63 Sektoren pro Kopf. Eine Partition beginnt bei LBA=46781280 oder CHS=2912,0,1. Diese Partition endet bei 3072,254,63.

  • Erste Weg:
 Start:  864,  0, 1
 Ende:      0,254,63
  • Zweite Weg:
 Start: 1023,254,63
 Ende:   1023,254,63


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

Partition Magic (vor Version 8,0?) betrachtet den zweiten Weg als ungültig; obwohl es ein vereinbarter Standard ist. TestDisk bearbeitet beides, ohne sich zu beschweren.

Zurück zur TestDisk-Hauptseite