Home
Übersicht
Funktionalität
Produkte
Demo
Support
Presse
Bestellung
 
Home Suche English Page Kontakt News

ImageCopy
 Supportübersicht
 FAT
 Partitionstabellen

Technische Informationen

LBA Mode, Extended Interrupt 13, FAT

Um verschiedentlich aufgetauchte Fragen und zugehörige Antworten bezüglich Kopieren mit ImageCopy zusammenzufassen, haben wird diese kurze technische Information zusammengestellt. Wir hoffen, Ihnen hiermit wertvolle Hilfe für das Verständnis oftmalig auftauchender Fragen in Zusammenhang mit Festplatten und Filesystemen zu geben und stehen für weitergehende Fragen gerne (bevorzugt telefonisch) zur Verfügung.

Grundsätzliches für Festplatten kleiner 504 Mbyte

Festplatten mit einer Größe kleiner 504 Mbyte können von allen Betriebssystemen ohne Einschränkungen angesprochen werden und die tatsächliche (physikalische) Plattengeometrie (Anzahl Sektoren, Köpfe und Zylinder) wird in dieser Form von allen Betriebssystemen genutzt. Die maximalen Parameter sind dabei 63 Sektoren, 16 Köpfe und 1024 Zylinder. Dies ergibt eine Maximalgröße von

    512 x 63 x 16 x 1024 = 528482304 Byte
    (528482304 / 1024 / 1024 = 504 Mbyte)

wobei die Zahl 512 für die Anzahl Byte pro Sektoren steht.

Festplatten größer 504 MByte und kleiner 7,84 GByte

Diese Platten können mit obiger Begrenzung nicht mehr angesprochen werden, daher führt das BIOS ein sogenanntes Drive Mapping durch (meistens fälschlicherweise als LBA Modus bezeichnet, korreckterweise sollte dies als "CHS-Translation" bezeichnet werden), d.h. das BIOS "behauptet", die Platte hätte entsprechend mehr Köpfe (Maximalanzahl 255), sodaß bei einer Maximalanzahl von (nach wie vor) 1024 Zylinder die Platte zur Gänze angesprochen werden kann. Ist z.B. eine Platte mit physikalisch 63 Sektoren, 16 Köpfen und 6232 Zylindern vorhanden, setzt ein BIOS des Herstellers "A" im LBA Modus an Stelle dessen 63 Sektoren, 128 Köpfe und 778 Zylinder ein, sodaß die Zylinderanzahl wiederum unter 1024 liegt und die Platte damit zur Gänze angesprochen werden kann. Dies ist jedoch nicht die einzige Variante, wie die Platte gemappt werden kann. So kann ein BIOS des Herstellers "B" z.B. 255 Köpfe und eine entsprechend kleinere Anzahl von Zylindern eintragen, sodaß wiederum die ganze Platte ansprechbar ist. Eine Platte, die im Computer mit dem BIOS "A" erstellt wurde und im Computer mit dem BIOS "B" unverändert betrieben werden soll, ist damit in zweiterem Computer nicht lauffähig! ImageCopy erkennt in diesem Fall, daß das Mapping ursprünglich anders durchgeführt wurde, und rechnet beim Kopieren alle Werte dementsprechend automatisch um, obwohl diese Platte im Computer mit BIOS "B" nicht lauffähig wäre, wo das Kopieren durchgeführt wird.

Die Maximalgröße, die mit diesem Mapping angesprochen werden kann, ist

    512 x 63 x 255 x 1024 = 8422686720 Byte
    (8422686720 / 1024 / 1024 / 1024 = 7,84 Gbyte)

Wird eine Platte größer 504 MByte ohne LBA Modus betrieben, wird (je nach BIOS) entweder 63 Sektoren / 16 Köpfe / 1024 Zylinder (Maximalanzahl) oder die physikalische Plattengeometrie mit der Zylinderanzahl auf 1024 begrenzt angegeben.

Obige Angaben beziehen sich alle auf ein BIOS mit Standard Interrupt 13 (Interrupt für Festplattenzugriffe) Ausführung. Um jedoch Platten größer 7,84 GByte ansprechend zu können, wurden zusätzliche Funktionen bei diesem BIOS Interrupt von Microsoft eingeführt (Funktionen 41h bis 48h), die auf neuen Mainboards bereits implementiert sind. Diese Funktionen werden unter dem Begriff "Extended Interrupt 13" zusammengefaßt. Mit diesen Extended Functions können Festplatten größer 504 MByte wieder mit den physikalischen Parametern angesprochen werden, jedoch müssen diese Funktionen völlig anders angesprochen werden als die konventionelle Variante. Derzeit verwendet unseres Wissens nach ausschließlich Windows 95 diese zusätzlichen Funktionen. ImageCopy greift derzeit ausschließlich über die koventionelle Variante auf die Festplatten zu, verwendet jedoch den Extended Int 13 für die Größenermittlung der Festplatten.

Festplatten größer 7,84 GByte, Extended Interrupt 13

Wie in obigem Abschnitt bereits angegeben, kann bei einer Platte größer 7,84 Gbyte nicht mehr mit der konventionellen Variante auf die ganze Platte zugegriffen werden. Windows NT oder z.B. SCO Unix und Novell umgehen das BIOS und greifen mit eigenen Treibern auf Festplatten zu, sodaß sich hier dieses Limit nicht auswirkt. Windows 95 kann sowohl mit der konventionellen als auch mit den Extended Int 13 Funktionen (wenn das BIOS diese zur Verfügung stellt) bereits bei Platten kleiner 7,84 GByte arbeiten, die Strategie (auf die vom Anwender kein Einfluß genommen werden kann) scheint zu sein, daß Partitionen, die größer als 2 GByte sind (FAT32 Partitionen), bei Vorhandensein der Extended Int 13 Funktionen mit diesen angesprochen werden, bzw. in jedem Fall, wenn die Platte ohne LBA Modus betrieben wird, und die Partitionen größer als 504 MByte sind. Wird die Platte im LBA Modus betrieben, und ist mit den vom BIOS vorgegebenen logischen (d.h. gemappten) Geometrie die Platte nicht zur Gänze ansprechbar, wird ebenfalls der Extended Int 13 Modus von Windows 95 gewählt.

Partitionstabellen

Die von FDISK angelegten Partitionstabellen unterteilen die Festplatte in unterschiedliche Bereiche. Die konventionelle Variante hierzu ist eine Tabelle in der folgenden Form:

  • Nummer der Partition
  • Partition bootbar (Ja/Nein)
  • Bytewert, der den Typ der Partition beschreibt
  • Start der Partition (Sektor, Kopf, Zylinder)
  • Ende der Partition (Sektor, Kopf, Zylinder)
  • Entfernung des Partitionsstarts zum Beginn der Platte in Anzahl Sektoren
  • Anzahl der Sektoren in der Partition

Wird nun die Platte über die Extended Int 13 Funktionen betrieben, so kann der Bootcode nicht mehr die ganze Platte ansprechen, da dieser immer mit der konventionellen Int 13 Variante arbeitet. Daher beziehen sich der Beginn der Partition (immer am Beginn eines Kopfes) und das Ende der Partition (immer am Ende eines Zylinders) immer auf die logischen (und nicht physikalischen) Plattenparameter, sodaß bei Verwendung der Extended Int 13 Variante die Anzahl der Sektoren in der Partition oftmals größer als Ende minus Start der Partition sind (!).

Der Typ der Partitionen (Auszug) ist wie folgt:

Kennung (Hex)
Bezeichnung im ImageCopy Logfile Beschreibung Verwendet von
01
DOS/F12 FAT 12 Partition DOS, Windows 3.x, 95, NT
04
DOS/F16 FAT 16 Partition DOS, Windows 3.x, 95, NT
05
DOS, Ext Extended Partition DOS, Windows 3.x, 95, NT und andere
06
DOS4 > 32M FAT16 > 32 MByte Partition DOS, Windows 3.x, 95, NT
0B
DOS/F32 Windows 95 FAT 32 Partition Windows 95
0C
Win95F32 Windows 95 FAT32 Partition mit Ext. Int 13 Windows 95
0E
Win 95 FAT16 > 32 MByte Partition mit Ext. Int 13 Windows 95
0F
Win95Ext Extended Partition mit Ext. Int 13 Windows 95
 

Das FAT Filesystem

  Das von DOS, Windows 3.x, Windows 95 und teilweise von Windows NT verwendete Filesystem ist ein FAT (File Allocation Table) Filesystem, d.h. es ist eine verkettete Liste der verwendeten Sektoren (üblicherweise aus Sicherheitsgründen zweimal) vorhanden. Da auf Grund historischer Gegebenheiten diese Liste bald zu klein war, wurden mehrere Sektoren zu sogenannten Clustern zusammengefaßt und die Liste bezieht sich in der Zwischenzeit ausschließlich auf diese Cluster. In dieser verketteten Liste werden die von einer Datei verwendeten Cluster in der Form eingetragen, daß der Eintrag für z.B. den Cluster Nummer 2345 auf den nächsten von dieser Datei verwendeten Cluster (z.B. 3423) verweist. Der letzte Cluster ist mit einer speziellen Kennung (EOF) versehen, um das Ende der Kette zu kennzeichnen. Der erste Cluster einer Datei wird über den Inhaltsverzeichniseintrag referenziert.

Je nach maximaler Datenmenge, die in einer Partition untergebracht werden können, werden unterschiedliche FAT Versionen und Clustergrößen verwendet. So können z.B. bei einer maximalen Listengröße von ca. 65000 Einträgen (FAT16 = Listeneintrag ist 16 Bit breit) insgesamt maximal 65000 Cluster verwaltet werden. Besteht nun ein Cluster z.B. aus 32 Sektoren (Clustergröße 16 kByte) so können in diesem Fall ca. 65000 x 16 kByte = ca. 1 GByte verwaltet werden. Soll die Partition größer sein, muß die Clustergröße höher gewählt werden. Die von DOS, Windows 3.x und Windows 95 maximal unterstützte Clustergröße ist 32 kByte (64 Sektoren), sodaß sich hier eine Maximalgröße von 2 GByte pro Partition ergibt. Windows NT kann auch mit einer FAT Partition mit 64 kByte Clustern umgehen, sodaß hier die maximale Größe 4 GByte beträgt (das meistens bei Windows NT verwendete Filesystem NTFS ist völlig anders aufgebaut und weist daher alle diese Beschränkungen nicht auf). Mit der Windows 95 OEM Version wurde erstmals die sogenannte FAT32 eingeführt, wo die FAT Liste 32 Bit breit ist und daher - auch bei kleinen Clustergrößen von 4 kByte - sehr große Platten verwaltet werden können, und der verschwendete Platz wesentlich geringer ist (eine Datei mit 1 Byte Länge belegt immer einen vollen Cluster, d.h. bei FAT16 maximal 64 kByte). Der Preis hierfür ist eine entsprechende niedrigere Zugriffsgeschwindigkeit auf das Filesystem. Das nach wie vor für kleine Partitionen verwendete FAT12 Filesystem hat nur 12 Bit (1 1/2 Byte) breite Einträge und kann daher maximal ca. 4000 Cluster (von allerdings bis zu 32 kByte Größe) verwalten, wird aber normalerweise nur mit entsprechend kleineren Clustergrößen betrieben.

Weiterführende Literatur

"Pfriemeln mit Diskedit und Debug"
von Harald Bögeholz in c't 5/97, S. 188,
Heise Verlag

"Lange Dateinamen unter Windows 95"
von Thomas Lauer in c't 5/97, S. 352,
Heise Verlag

"Enhanced Disk Drive Specification v1.1" (Adobe Acrobat File),
"Enhanced Disk Drive Specification v3.0" (Adobe Acrobat File),
Phoenix Technologies Ltd.

"CHS-Translation"
by Hale Landis

"Partition Tables"
by Hale Landis

Seitenbeginn | Home | Supportübersicht | FAT | Partitionstabellen
Seitenbeginn | Home | Übersicht | Funktionalität | Produkte | Demo | Presse | Bestellung