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