Intel-Partitionstabelle
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