Der Bootmanager einfach für jeden!  
Produkt
Bestellung
Support
  LBA und CHS
Über uns

LBA- und CHS-Format, LBA-Mapping

LBA-Format:
LBA steht für Logical Block Address. Hierbei werden die Sektoren der Platte beginnend mit 0 einfach fortlaufend durchnummeriert. Ein bestimmter Sektor ist dann durch seine LBA-Nummer eindeutig festgelegt. Das LBA-Format wird nur von einem nicht zu alten BIOS unterstützt (ca. ab Mitte der Neunziger Jahre).

CHS-Format:
Im CHS-Format wird ein Sektor durch die Angabe der Cylinder/Head/Sector-Nummer festgelegt. Diese Werte gaben früher einmal die tatsächliche physikalische Position des Sektors auf der Platte an. Heutzutage sind die CHS-Angaben jedoch logische Werte. Die (logische) Anzahl der Zylinder, Köpfe und Sektoren pro Spur lassen sich über die Fkt. 08h bzw. 48h des BIOS-Interrupts 13h ermitteln. Das CHS-Format wird von jedem BIOS unterstützt, allerdings nur bis zu einer Plattengrösse von 8 GB (siehe unten).

Im CHS-Format gelten folgende Beschränkungen:

   Zylinder-Nummer   0 - 1023   (10 Bit)
   Kopf-Nummer   0 - 254   (8 Bit)
   Sektor-Nummer   1 - 63   (6 Bit)

Aufgrund eines Fehlers im DOS-Betriebssystem führt eine maximale Kopf-Nummer von 255 zu einem Absturz, obwohl diese Zahl eigentlich vom BIOS erlaubt ist. Die maximale Kopf-Nummer 255 wird deshalb in der Regel nicht benutzt.

Max. Plattengrösse:
Für das CHS-Format stehen in der Partitionstabelle und für den Aufruf von BIOS-Funktionen generell nur 24 Bit zur Verfügung. Damit lassen sich bei einer Sektorgrösse von 512 Byte nur Platten bis 8 GB adressieren. Für die LBA-Nummern stehen in der Partitionstabelle des MBR 32 Bit zur Verfügung. Bei derselben Sektorgrösse von 512 Bytes können damit Platten bis zu 2048 GB (2 TB) adressiert werden. Der erweiterte INT 13h benutzt sogar 64 Bit für die Angabe der LBA-Nummer. Aufgrund des einfacheren Konzepts und der Möglichkeit auch mit grösseren Platten zurechtzukommen, wird das LBA-Format intern von allen modernen Betriebssysteme für den direkten Plattenzugriff benutzt.

Umrechnung zwischen CHS und LBA:
Beide Angaben (CHS und LBA) lassen sich ineinander umrechnen und sind praktisch äquivalent. Ein Sektor C/H/S im CHS-Format hat folgende LBA-Nummer:

LBA = C x Num_Head x Num_Sec + H x Num_Sec + (S - 1)
Hierbei bedeutet Num_Sec die (logische) Anzahl der Sektoren pro Spur und Num_Head die (logische) Anzahl der Köpfe. Nur diese beiden (logischen) Geometrie-Parameter der Platte sind für die Umrechnung bestimmend. Die Anzahl der Zylinder ist unerheblich.

LBA-Mapping:
Die beiden Umrechnungsparameter Num_Head und Num_Sec werden unter dem Begriff LBA-Mapping zusammengefasst. Das LBA-Mapping bestimmt also den Zusammenhang zwischen den CHS- und LBA-Werten eines Sektors. Diese beiden Parameter werden generell über die Funktion AH=08h des Standard-BIOS-Interrupts 13h ermittelt. Auch wenn der erweiterte Interrupt 13h vorhanden ist, wird das LBA-Mapping über den gewöhnlichen INT 13h ermittelt. Die Plattenparameter, die vom erweiterten INT 13h zurückgegeben werden, dienen praktisch nur zur Ermittlung der Plattengrösse.

Die Plattengrösse ergibt sich bei einer festen Sektorgrösse von 512 Bytes unmittelbar aus der Gesamtzahl der Platten-Sektoren , die sich wiederum aus dem Produkten der Anzahl Zylinder, Köpfe und Sektoren/Spur berechnet.