Kapitel – 3
Ein logischer Ansatz für Festplatten und Betriebssysteme
Eine Festplatte kann ihre Hardware nicht alleine steuern und benötigt für die Ausführung ihrer Funktionen zwei Hauptprogramme: BIOS (Basic Input/Output System) und DOS (oder Betriebssystem). Das Betriebssystem der Festplatte interagiert nicht direkt mit der Hardware und der Festplatte des Computers, erfordert jedoch das BIOS dazwischen. Aus diesem Grund spielt das BIOS in einem Computer eine wichtige Rolle.
BIOS
Die Hauptaufgabe des BIOS besteht darin, eine Standardschnittstelle zwischen der an den Computer angeschlossenen Hardware oder den angeschlossenen Geräten und DOS bereitzustellen. Das System-BIOS ist die Schnittstelle auf unterster Ebene zwischen der Hardware Ihres Systems und der darauf ausgeführten Software. Es erfüllt mehrere wichtige Funktionen bei der Verwaltung des Zugriffs auf Festplatten, wie zum Beispiel
- BIOS-Interruptroutinen
- Erkennen und Konfigurieren Ihrer Festplatte
- Unterstützt den Festplattenschnittstellenmodus
Um die Interoperabilität zwischen unterschiedlichen Hardware- und Softwareprodukten zu ermöglichen, wird das BIOS eines Systems an die Anforderungen der Hardware angepasst und bietet der Software einen standardisierten Weg, auf die Hardware zuzugreifen. Sie werden BIOS-Dienste genannt und von vielen Betriebssystemen und Anwendungsprogrammen verwendet. Sie stellen eine einzige Schnittstelle zur Festplatte bereit, sodass Anwendungen nicht wissen müssen, wie sie mit jedem Festplattentyp einzeln kommunizieren.
Standard-IDE/ATA-Festplatten werden im BIOS mithilfe verschiedener BIOS-Einstellungen konfiguriert. Moderne BIOS-Programme können moderne IDE/ATA-Laufwerke erkennen, diese Einstellungen ermitteln und automatisch konfigurieren. Das BIOS steuert, welche Schnittstellenmodi mit der Festplatte verwendet werden können, indem es mit dem Systemchipsatz auf der Hauptplatine und dem System-E/A-Bus zusammenarbeitet.
INT 13H Schnittstelle und INT 13H Erweiterungen
Die primäre Schnittstelle zum BIOS ist der Software-Interrupt 13H, der allgemein als INT 13H bekannt ist, wobei INT für Interrupt steht und 13H die Zahl 19 in hexadezimaler Notation ist.
Wir werden die Verwendung von Interrupts bei der Programmierung in der Programmierphase dieses Buches ausführlich untersuchen und diskutieren. Die Int13H-Schnittstelle unterstützt eine Vielzahl unterschiedlicher Befehle, die an das BIOS gegeben werden können, das diese dann an die Festplatte weiterleitet. Interrupt 13H umfasst die meisten Aufgaben, die wir auf der Festplatte ausführen müssen, wie Lesen, Schreiben, Formatieren usw.
Für die Verwendung und Arbeit mit Int13H muss das aufrufende Programm die spezifischen Parameter der Festplatte kennen und den Routinen für den Zugriff auf die Festplatte die genaue Kopf-, Zylinder- und Sektoradressierung bereitstellen.
Das BIOS verwendet die Festplattengeometrie, wie sie im BIOS-Setup-Programm konfiguriert wurde. Die Int13H-Schnittstelle reserviert 24 Bits für die Angabe der Festplattengeometrie, die sich wie folgt aufschlüsselt:
- 10 Bits für die Zylindernummer oder insgesamt 1024 Zylinder.
- 8 Bits für die Kopfnummer oder insgesamt 256 Köpfe.
- 6 Bits für die Sektornummer oder insgesamt 63 Sektoren.
Somit kann die maximal mögliche Anzahl von Sektoren auf einer Platte
= 1024 * 256 * 63
= 16515072
Wie wir hier sehen können, kann die INT 13H-Schnittstelle Laufwerke mit bis zu 16515072 Sektoren mit 512 Bytes pro Sektor unterstützen. Somit kann die maximale Festplattengröße
= 16515072 * 512
= 8455716864 Bytes
~ 8.456 GB
Somit kann die INT 13H-Schnittstelle eine Festplattengröße von ungefähr 8,456 GB (oder 7,875 GiB) unterstützen.
Heutzutage verwenden die meisten Computerbenutzer Festplatten mit Kapazitäten von deutlich über 8 GB, sodass die INT 13H-Schnittstelle in modernen Computersystemen endgültig das Ende ihrer Nützlichkeit erreicht hat und durch eine neuere Schnittstelle namens INT 13H-Erweiterungen ersetzt wurde. INT 13H kann jedoch weiterhin von DOS und einigen anderen älteren Betriebssystemen sowie aus anderen Kompatibilitätsgründen verwendet werden.
Int 13H Erweiterungen
Es ist wirklich interessant, dass bei der Entwicklung der INT 13H-Schnittstelle niemand damit gerechnet hat, dass auf einer Festplatte 8 GB Speicherplatz zur Verfügung stehen würden. Heute ist uns jedoch aufgefallen, dass eine 8-GB-Festplatte selbst für einen Heimcomputer eine viel geringere Kapazität bietet.
Der alte Standard hat eine wichtige Einschränkung: Er verwendet 24 Bit Adressierungsinformationen und kann daher nur Laufwerke mit bis zu 16.515.072 Sektoren mit 512 Byte pro Sektor verarbeiten, was eine maximale Kapazität von 8,456 GB (oder 7,875 GiB) ergibt.
Das Problem bestand also darin, den Zugriffspfad von 24 Bit auf einen größeren Wert zu erweitern. Es war jedoch nicht möglich, die vorhandene INT13H-BIOS-Schnittstelle zu erweitern, da bei einem solchen Versuch viele ältere Hardware- und Softwarekomponenten nicht mehr funktionieren würden. Und praktisch besteht keine Hoffnung, einen respektablen Platz in der Computerwelt zu erringen, wenn viele ältere Hardware- und Softwarekomponenten mit Ihrer Entwicklung nicht funktionieren.
Daher wurde eine neue Schnittstelle entwickelt, die Int13H ersetzt. Diese Routinen werden Int13H-Erweiterungen genannt. Diese neue Schnittstelle verwendet 64 Bit statt 24 Bit zur Adressierung und ermöglicht eine maximale Festplattengröße von 9,4 * 10 21 Bytes, also 9,4 Billionen Gigabyte.
Wir werden die Verwendung der Erweiterungen INT 13H und INT 13H im Programmierabschnitt dieses Buches lernen. Es gibt eine Reihe weiterer Größenbeschränkungen, die früher galten. Einige der gängigen logischen und physikalischen Beschränkungen werden im Folgenden beschrieben:
Die 2,1 GB-Grenze
Diese Größenbeschränkung wurde in einigen älteren BIOS eingehalten, die nur 12 Bit für das Feld im CMOS-RAM zuordnen, das die Anzahl der Zylinder angibt. Daher darf diese Zahl höchstens 11111111111B betragen (maximal mögliche 12-Bit-Binärzahl), was 4095 entspricht. Auf diese Weise beträgt die maximale Festplattengröße mit 16 Köpfen, auf die zugegriffen werden kann:
= 4095 * 16 * 63 * 512 Bytes
= 2113413120 Bytes sind zugänglich.
Die 33,8 GB-Grenze
Diese Festplattengrößengrenze wurde Anfang 1999 entdeckt. Große Festplatten verfügen über 16 Köpfe, 63 Sektoren/Spur und 16383 Zylinder. Viele BIOS berechnen die tatsächliche Anzahl der Zylinder, indem sie die Gesamtkapazität durch 16*63 teilen.
Bei Festplatten mit mehr als 33,8 GB führt dies zu einer Zylinderanzahl von mehr als 65535. In diesem speziellen Fall können einige Versionen des Award BIOS keine Festplatten mit mehr als 65.535 Zylindern verarbeiten. Das BIOS stürzt nun ab oder bleibt hängen. Da Festplattenparameter normalerweise 16 Köpfe und 63 Sektoren verwenden, ergibt dies eine Kapazität von etwa 33,8 GB oder 31,5 GiB, bevor Probleme auftreten.
Die Lösung besteht in einem BIOS-Upgrade. Alternativ kann man einen Jumper verwenden, um die Festplatte kleiner erscheinen zu lassen.
ATA-Spezifikation für IDE-Festplatten - Die 137 GB-Grenze
Die alte ATA-Spezifikation erlaubt keinen Zugriff auf Festplatten, die größer als 137 GB sind. Tatsächlich werden nur 28 Bits zur Angabe einer Sektornummer verwendet. ATA-6 definiert jedoch eine Erweiterung mit 48-Bit-Sektornummern.
Die Grenze der Plattengröße wurde mit der Kombination von höchstens 65536 Zylindern, die von 0 bis 65535 zählen, 16 Köpfen, die von 0 bis 15 zählen, und 255 Sektoren pro Spur, die von 1 bis 255 zählen, erzeugt, die maximale Gesamtkapazität der Platte,
= 65535 * 16 * 255 Sektoren
= 267386880 Sektoren
= 136902082560 Bytes (Sektor mit jeweils 512 Bytes)
~ 137 GB
BIOS-IDE-Unterstützung für zwei und vier Festplatten
Heutzutage unterstützen die meisten modernen BIOS-Programme die automatische Festplattenerkennung. Das BIOS kann jede Festplatte abfragen, um ihre logische Geometrie, unterstützten Übertragungsmodi und andere Informationen zu ermitteln. Dies kann je nach BIOS entweder beim Setup oder dynamisch bei jedem Booten des Computers erfolgen.
Das System-BIOS bietet native Unterstützung für IDE/ATA-Festplatten. Daher können eine Reihe von Parametern festgelegt werden, um dem BIOS mitzuteilen, welche Festplatten sich im System befinden und wie sie gesteuert werden sollen. Jede Festplatte im System hat ihre eigenen Einstellungen. Es gibt also einen Satz für den primären Master und einen für den primären Slave usw. SCSI-Festplatten werden jedoch über ihren Hostadapter und das integrierte SCSI-BIOS konfiguriert.
Da Festplattenlaufwerke mit einer Größe von über 8 GB nicht mit herkömmlichen IDE/ATA-BIOS-Geometrieparametern beschrieben werden können, ist die dynamische automatische Erkennung die Standardmethode zum Einrichten moderner Laufwerke. Insbesondere bei älteren Computersystemen kann der Benutzer jedoch einige Laufwerksparameter immer noch manuell festlegen.
Nachfolgend sind die Einstellungen aufgeführt, die normalerweise im BIOS-Setup-Programm zur Konfiguration von IDE/ATA-Festplatten zu finden sind. Auf modernen Systemen sind einige der ältesten Kompatibilitätseinstellungen möglicherweise nicht mehr vorhanden:
- Datenträgertyp: Wurde ursprünglich verwendet, um dem Benutzer die Auswahl seiner Festplatte aus einer vordefinierten Liste zu ermöglichen. Jetzt wird er jedoch verwendet, um die automatische oder manuelle Parametereinrichtung für das Laufwerk zu steuern.
- Größe: Größe der Festplatte in dezimalen Megabyte. Sie wird aus den anderen Parametern wie Zylindern, Köpfen und Sektoren usw. berechnet.
- Zylinder: Die Anzahl der logischen Zylinder auf der Festplatte. Köpfe: Die Anzahl der logischen Köpfe auf der Festplatte.
- Sektoren: Die Anzahl logischer Sektoren mit jeweils 512 Bytes in jeder logischen Spur auf der Festplatte. Moderne Festplattenlaufwerke haben normalerweise 63 Sektoren in einer einzelnen Spur.
- Schreibvorkompensation: Hierbei handelt es sich um eine Kompatibilitätseinstellung, die angibt, bei welcher Zylindernummer bei sehr viel älteren Laufwerken Schreibanpassungen vorgenommen werden sollen.
- Landing Zone (Parkköpfe): Die Landing Zone ist der Zylinder, in dem die Köpfe vom BIOS geparkt werden, um Datenverlust oder die Entstehung fehlerhafter Sektoren zu vermeiden, wenn das Laufwerk ausgeschaltet wird. Da moderne Festplattenlaufwerke ihre Köpfe automatisch parken, ist dies heutzutage nur noch selten nötig.
- Übersetzungsmodus: Der BIOS-Übersetzungsmodus dient zur Unterstützung von Festplatten über 504 MB.
- Blockmodus: Zur Steuerung der Fähigkeit des BIOS, Festplattenübertragungen in Blöcken durchzuführen.
- Programmierter E/A-Modus (DMA): Der programmierte E/A-Modus oder DMA-Modus wird für Übertragungen von und zur Festplatte verwendet.
- 32-Bit-Übertragungsmodus: Steuert die Verwendung von 32-Bit-Datenübertragungen mit höherer Leistung.
Einschränkungen in Dateisystemen
Jedes Dateisystem unterstützt eine maximale Volumegröße, Dateigröße und Anzahl von Dateien pro Volume.
Beispielsweise sind FAT16- und FAT32-Volumes im Allgemeinen auf 4 GB bzw. 32 GB (im Allgemeinen) begrenzt. Es gibt einige Einschränkungen in Bezug auf FAT-Dateisysteme, die Sie kennen sollten. Nachfolgend sind einige aufgeführt:
- FAT12: FAT-Volumes kleiner als 16 MB werden als FAT12 formatiert. Dies ist der älteste FAT-Typ und verwendet eine 12-Bit-Binärzahl zur Speicherung von Clusternummern. Ein mit FAT12 formatiertes Volume kann maximal 4.086 Cluster speichern, was 2 12 minus einiger reservierter Werte entspricht, die in FAT verwendet werden. (Wir werden dies im Folgenden in diesem Kapitel ausführlich in der logischen Struktur der Festplatte besprechen.) Daher ist FAT12 am besten für kleinere Volumes geeignet. Es wird auf Disketten und Festplattenpartitionen verwendet, die kleiner als etwa 16 MB sind.
- FAT16: FAT16 verwendet eine 16-Bit-Binärzahl, um Clusternummern zu speichern. Ein Volume mit FAT16 kann maximal 65.526 Cluster speichern, was 2 16 minus einiger reservierter Werte entspricht, die in FAT verwendet werden. (Wir werden dies im Detail in der logischen Struktur der Festplatte besprechen, die als nächstes in diesem Kapitel angegeben wird.) FAT16 wird für Festplattenvolumes mit einer Größe von 16 MB bis 2.048 MB verwendet. Auf FAT16-Volumes mit mehr als 2 GB kann von Computern mit MS-DOS, Windows 95/98/ME und vielen anderen Betriebssystemen nicht zugegriffen werden. Diese Einschränkung tritt auf, weil diese Betriebssysteme keine Clustergrößen über 32 KB unterstützen, was zu der 2-GB-Begrenzung führt. (Siehe die Cluster-Begrenzung, die als nächstes in diesem Kapitel angegeben wird.)
- FAT32: Theoretisch können FAT32-Volumes bis zu 2048 GB (ungefähr 2 Terabyte) groß sein. FAT32 wird von der OEM-SR2-Version von Windows 95 sowie von Windows 98/ME unterstützt. FAT32 verwendet eine binäre Clusternummer von 28 Bit (Denken Sie daran! Nicht 32, da 4 der 32 Bits „reserviert“ sind). Theoretisch kann FAT32 also Volumes mit über 268 Millionen Clustern (tatsächlich 268.435.456 Cluster) verarbeiten und unterstützt Laufwerke mit einer Größe von bis zu 2 TB. Allerdings wird dadurch die Größe des FAT sehr groß. (Wir werden dies in den nächsten Themen in diesem Kapitel besprechen.)
Der Vergleich der FAT-Typen ist als Nächstes in der Tabelle aufgeführt.
NTFS: NTFS steht für New Technology File System. Es wird von Windows 2000/XP verwendet. Theoretisch beträgt die maximale NTFS-Partitionsgröße (2 64 – 1) Cluster.
Eine detaillierte Beschreibung des NTFS-Dateisystems geht über den Rahmen dieses Buches hinaus. In der folgenden Tabelle sind jedoch einige Einschränkungen aufgeführt:
Beschreibung
|
Limit |
Maximale Dateigröße
|
16 Exabyte – 1 KB (2 64 Byte – 1 KB) |
Maximale Volumegröße
|
(2 64 – 1) Cluster |
Dateien (und Ordner) pro Volume
|
4,294,967,295 (2 32 – 1 ) Fliegen und Ordner |
Cluster
Die kleinste Speichereinheit auf der Festplatte, auf die Software zugreifen kann, ist der Sektor mit 512 Bytes. Es ist möglich, ein Zuordnungssystem für die Festplatte einzurichten, bei dem jeder Datei so viele einzelne Sektoren zugewiesen werden, wie sie benötigt. Eine 1 MB große Datei würde beispielsweise etwa 2.048 einzelne Sektoren zum Speichern ihrer Daten benötigen.
Im Falle des FAT-Dateisystems bzw. der meisten Dateisysteme werden einzelne Sektoren nicht verwendet. Dafür gibt es mehrere Leistungsgründe. Wenn DOS Informationen auf die Festplatte schreibt, teilt es den Speicherplatz nicht sektorweise zu, sondern verwendet eine neue Speichereinheit namens Cluster.
FAT wurde vor vielen Jahren entwickelt und ist ein einfaches Dateisystem, das nicht in der Lage ist, einzelne Sektoren zu verwalten. Stattdessen gruppiert FAT Sektoren in größere Blöcke, die als Cluster oder Zuordnungseinheiten bezeichnet werden.
Ein Cluster ist die kleinste Einheit an Speicherplatz, die einer Datei zugewiesen werden kann. Aus diesem Grund werden Cluster häufig als Zuordnungseinheiten bezeichnet. Wenn Dateien in 512-Byte-Stücke aufgeteilt sind, kann die Verwaltung der Festplatte sehr schwierig sein.
Ein 20 GB großes Festplattenvolumen mit 512 Byte Sektoren, die einzeln verwaltet werden, würde über 41 Millionen einzelne Sektoren enthalten und die Nachverfolgung dieser vielen Informationen ist zeit- und ressourcenintensiv. Einige Betriebssysteme weisen Dateien zwar sektorweise Speicherplatz zu, benötigen dafür aber eine gewisse Intelligenz.
Cluster sind der minimale Speicherplatz, den DOS beim Speichern von Informationen auf der Festplatte zuweist. Selbst um nur ein Byte lange Informationen auf der Festplatte zu speichern, ist mindestens ein Clusterbereich auf der Festplattenoberfläche erforderlich.
Wenn ein Cluster 512 Bytes an Informationen speichern kann, dann benötigen Sie zum Speichern von 513 Bytes zwei Cluster. Jeder Datei muss eine ganzzahlige Anzahl an Clustern zugewiesen werden. Das bedeutet, wenn ein Datenträger Cluster mit 4.096 Bytes verwendet, dann verwendet eine 610-Byte-Datei einen Cluster und damit 4.096 Bytes auf der Festplatte, während eine 4.097-Byte-Datei zwei Cluster und damit 8.192 Bytes auf der Festplatte verwendet.
Aus diesem Grund ist die Clustergröße so wichtig, um sicherzustellen, dass Sie die Festplatte optimal und effizient nutzen. Daher ist es verständlich, dass bei größeren Clustern mehr Speicherplatz verschwendet wird.
Die folgende Abbildung zeigt die Eigenschaften einer Datei mit dem Namen BINARY.C und verdeutlicht den Speicherplatz, den die Datei auf der Festplatte belegt. Die tatsächliche Größe der Datei beträgt 610 Bytes, aber da der einzelne Cluster 4.096 Bytes groß ist, belegt die Datei einen Cluster (4.096 Bytes) auf der Festplatte.
Ein Cluster kann aus einem oder mehreren Sektoren bestehen. Dies hängt vom verwendeten Datenträgertyp ab. Da ein Cluster aus mehr als einem Sektor bestehen kann, verringert die Verwendung von Clustern als Zuordnungseinheit die Größe der Dateizuordnungstabelle, die DOS zum Speichern der Informationen über den verwendeten und leeren Speicherplatz verwendet.
Die Clustergröße wird in erster Linie durch die Größe des Datenträgervolumens bestimmt. Wenn nicht streng genommen, verwenden größere Datenträger im Allgemeinen größere Clustergrößen. Bei Festplattendatenträgern reicht die Größe jedes Clusters von 4 Sektoren (2.048 Byte) bis 64 Sektoren (32.768 Byte).
Disketten verwenden viel kleinere Cluster, in manchen Fällen sogar Cluster mit einer Größe von nur einem Sektor. Die Sektoren in einem Cluster sind zusammenhängend, sodass jeder Cluster einen zusammenhängenden Speicherplatzblock auf der Diskette darstellt.
Die Clustergröße und damit auch die Partitions- oder Volumegröße, da sie direkt miteinander in Zusammenhang stehen, haben einen wichtigen Einfluss auf Leistung und Datenträgerauslastung. Die Clustergröße wird bestimmt, wenn das Datenträgervolume partitioniert wird.
Es stehen einige Dienstprogramme wie Partition Magic zur Verfügung, mit denen die Clustergröße einer vorhandenen Partition innerhalb bestimmter Grenzen geändert werden kann. Im Allgemeinen ist die Partitions- und Clustergröße jedoch festgelegt, sobald sie einmal ausgewählt ist.
Wie wir bereits zuvor besprochen haben, beginnt die Zylinder- oder Spurnummer bei 0 und die erste Sektornummer wird immer als 1 angenommen. Außerdem sollten Sie sich merken, dass die erste Clusternummer immer als 2 angenommen wird.
Clustergröße
Cluster werden nur verwendet, um den Speicherbereich für den Datenbereich zuzuweisen. FAT- und Verzeichnisbereich werden nicht entsprechend der Clustergröße zugewiesen. Auf einer Festplatte, die 512-Byte-Sektoren verwendet, enthält ein 512-Byte-Cluster einen Sektor, während ein 4-KB-Cluster 8 Sektoren enthält.
In den folgenden Tabellen sind die von DOS für verschiedene Datenträgerformate verwendeten Standardclustergrößen aufgeführt. Unter bestimmten Umständen kann die Clustergröße jedoch von der Standardgröße abweichen:
Diskettenlaufwerk (FDD) |
Laufwerkstypen |
Sektoren/Cluster |
Gesamte Clustergröße in Bytes (Sektoren mit jeweils 512 Bytes) |
5,25-Zoll-FDD mit 360 KB |
2 Sektoren |
1.024 |
5,25-Zoll-FDD mit 1,2 MB |
1 Sektor |
512 |
3,5-Zoll-FDD mit 720 KB |
2 Sektoren |
1.024 |
3,5-Zoll-FDD mit 1,44 MB |
1 Sektor |
512 |
3,5-Zoll-FDD mit 2,88 MB |
2 Sektoren |
1.024 |
FAT16, FAT32 und NTFS verwenden je nach Partitionsgröße unterschiedliche Clustergrößen und jedes Dateisystem kann eine maximale Anzahl von Clustern unterstützen. Je kleiner die Clustergröße, desto effizienter speichert eine Festplatte Informationen, da ungenutzter Speicherplatz innerhalb eines Clusters nicht von anderen Dateien genutzt werden kann.
Die folgende Tabelle zeigt die Standardclustergrößen für FAT16-, FAT32- und NTFS-Dateisystempartitionen. FAT 32 ermöglicht eine wesentlich effizientere Speicherung und Nutzung größerer Festplatten, 32-Bit-FAT ist nur mit Windows 95 OSR-2 und Windows 98/ME kompatibel. FAT 16 wird von MS-DOS, Windows 3.1, Windows 95 und Windows NT unterstützt. Die Betriebssysteme Windows 2000/XP verwenden das NTFS-Dateisystem.
Hinweis: Hier wurde 1 KiB für 1 binäres Kilobyte geschrieben, das bedeutet, dass 1 KiB 1024 Bytes entspricht, oder wir können sagen, dass zwei Sektoren von 512 Bytes 1 KiB entsprechen.
Mit zunehmender Größe der FAT16-Partition steigt auch die Verschwendung von Speicherplatz. Die Verwendung von FAT32 reduziert die Clustergrößen und sorgt so für eine effiziente Speicherung. Obwohl FAT32 die Verwendung größerer Festplatten und stark reduzierter Clustergrößen ermöglicht, gibt es bei der Verwendung von FAT32 eine wichtige Leistungsüberlegung, da die riesigen Festplatten mit Dutzenden von Gigabyte FAT32 für neuere Systeme unverzichtbar gemacht haben. Vielmehr können wir sagen, dass Sie oft keine praktische Wahl mehr zwischen FAT16 und FAT32 haben.
Betrachten wir eine Partition mit 2.048 MB, die größte, die FAT16 unterstützen kann. Wenn diese Partition unter FAT16 eingerichtet wird, ergibt sich eine Dateizuordnungstabelle mit 65.526 Clustern, wobei jeder Cluster 32 KiB Speicherplatz belegt.
Die große Clustergröße führt tatsächlich zu einer großen Verschwendung von Speicherplatz. Daher wird empfohlen, auf dieser Partition FAT32 zu verwenden, wodurch die Clustergröße von 32 KiB auf 4 KiB reduziert wird.
Tatsächlich wird dadurch der freie Speicherplatz auf der Festplatte um bis zu 30 % reduziert und möglicherweise Hunderte von Megabyte an zuvor verschwendetem Speicherplatz freigegeben. In dieser Situation ist das normalerweise die richtige Vorgehensweise. Allerdings hat es auch eine andere Seite. Diese reduzierte Clustergröße bekommen wir nicht umsonst.
Da jeder Cluster kleiner ist, müssen mehr davon vorhanden sein, um dieselbe Festplattengröße abzudecken. Statt 65.526 Clustern haben wir jetzt also 524.208.
Darüber hinaus sind die FAT-Einträge in FAT32 32–Bit breit (jeder Eintrag 4 Bytes), während die Einträge von FAT16 16–Bit breit sind (jeder Eintrag 2 Bytes). Das Endergebnis ist, dass die Größe des FAT bei FAT32 16-mal größer ist als bei FAT16. Die folgende Tabelle fasst dies zusammen:
FAT 16 und FAT 32 für 2.048 MB Datenträgervolumen |
FAT-Typ |
FAT16 |
FAT32 |
Clustergröße |
32 KiB |
4 KiB |
Anzahl der FAT-Einträge |
65.526 |
524.208 |
Größe von FAT |
131052 Bytes
(~ 128 KiB) |
2096832 Bytes
(~ 2 MiB) |
Wenn wir die Größe des FAT32-Volumens von 2 GB auf 8 GB erhöhen, erhöht sich die Größe des FAT von etwa 2 MiB auf 8 MiB. Die Bedeutung davon liegt nicht darin, dass das FAT32-Volumen mehrere Megabyte Speicherplatz auf der Festplatte verschwenden muss, um das FAT zu speichern. Denn nur dadurch wird viel mehr Speicherplatz gespart als durch die Reduzierung der FAT-Größe. Das eigentliche Problem besteht darin, dass das FAT alle Clusterzeiger für jede Datei im Volume enthält. Eine starke Vergrößerung des FAT kann sich negativ auf die Systemgeschwindigkeit auswirken.
Aus diesem Grund ist es wichtig, die Größe der Dateizuordnungstabelle auf eine vernünftige Zahl zu begrenzen. Tatsächlich geht es in den meisten Fällen darum, ein Gleichgewicht zwischen Clustergröße und FAT-Größe zu finden. Ein gutes Beispiel hierfür sind die Clustergrößenauswahlen, die FAT32 selbst vornimmt.
Da FAT32 maximal rund 268 Millionen Cluster verarbeiten kann, ist die Clustergröße von 4 KiB konzeptionell in der Lage, ein Datenträgervolumen von 1 TiB (1.024 GiB) Größe zu unterstützen. Das Problem dabei ist jedoch, dass die FAT-Größe dann über 1 GB erreichen würde, entsprechend 268 Millionen mal 4 Bytes pro Eintrag.
Aus diesem Grund verwendet FAT32 nur 4-KiB-Cluster für Volumes mit einer Größe von bis zu 8 GiB. Danach werden größere Cluster verwendet, wie in der zuvor angegebenen Tabelle für Clustergrößen angegeben. Die von FAT32 unterstützte maximale Partitionsgröße beträgt offiziell 2.048 GiB (2 TiB).
Logische Struktur einer Festplatte
Grundsätzlich kann man die logische Struktur einer Festplatte in folgende fünf logische Begriffe unterteilen:
- MBR (Master Boot Record)
- DBR (DOS-Boot-Record)
- FAT (Dateizuordnungstabellen)
- Stammverzeichnis
- Datenbereich
Die folgende Abbildung stellt die konzeptionelle Anordnung dieser logischen Begriffe dar, die die logische Struktur einer Festplatte bilden:
Logische Struktur einer Festplatte
Der Master Boot Record (MBR), manchmal auch als Master Partition Table (MPT) bezeichnet, enthält ein kleines Programm zum Laden und Starten der aktiven (oder bootfähigen) Partition von der Festplatte. Der Master Boot Record enthält Informationen zu allen vier primären Partitionen auf der Festplatte, wie z. B. Startsektor, Endsektor, Größe der Partition usw.
Der MBR befindet sich im absoluten Sektor 0 oder anders ausgedrückt bei Zylinder 0, Kopf 0 und Sektor 1. Wenn auf der Festplatte mehr als eine Partition vorhanden ist, gibt es erweiterte Master Boot Records, die sich am Anfang jedes erweiterten Partitionsvolumens befinden (siehe die folgende Abbildung).
Der MBR wird auf der Festplatte durch Ausführen des DOS-Befehls FDISK.EXE erstellt. Es gibt jedoch auch viele andere Software, die dieselbe Aufgabe erfüllt. Mit FDISK kann jede dieser Partitionen aktiviert oder bootfähig gemacht werden.
Dadurch erhält der Bootsektor der aktiven Partition die Kontrolle, wenn das System gestartet wird. Da die Diskette keine Partitionen enthält, gibt es auf einer Diskette keinen MBR.
Da DOS zur Benennung einer Partition einen einzelnen Großbuchstaben verwendet, beträgt die maximale Anzahl aller Partitionstypen, die DOS zusammen zulässt, 24, beginnend mit dem Laufwerksbuchstaben C (C:) bis zum Laufwerksbuchstaben Z (Z:). Selbst wenn also mehr als eine physische Festplatte vorhanden ist, kann die Gesamtzahl der Partitionen aller Laufwerke 24 nicht überschreiten.
Nach dem Power-On Self Test (POST) lädt das BIOS den MBR (Master Boot Record) von der Festplatte in den Speicher und führt ihn dann aus. Zuerst überprüft der MBR die Festplatte auf eine aktive Partition, dann lädt er den DOS Boot Record (DBR) in den Speicher und übergibt die Kontrolle an den Bootcode des Betriebssystems. Anschließend lädt der Boot-Record-Code des Betriebssystems den Rest des Betriebssystems in den Speicher.
Master-Boot-Record-Format
Master-Boot-Record-Format
Wir können die Festplatte in mehrere logische Laufwerke partitionieren, denen DOS im Allgemeinen einen eigenen Laufwerksbuchstaben zuweist. Es kann immer nur eine Partition als aktive (oder bootfähige) Partition markiert werden.
Master-Boot-Record-Format
Der Master Boot Record ist auf vier Einträge in der Master-Partitionstabelle beschränkt. Der Speicherort des erweiterten Master Boot Record kann jedoch mithilfe des Master Boot Record ermittelt werden, der erweiterte Partitionstabellen enthält, deren Format genau dem der Hauptpartitionstabelle entspricht, außer dass kein Bootcode vorhanden ist.
Im erweiterten Master Boot Record ist dieser Speicherplatz von 446 Bytes normalerweise für den Bootcode reserviert und bleibt leer. Alle 512 Bytes des Master Boot Record sind wie folgt aufgeteilt (siehe Tabelle):
Versatz |
Beschreibung |
Größe |
000 Uhr |
Initial Program Loader (IPL), ausführbarer Code (ermöglicht den allerersten Bootvorgang des Computers) |
446 Bytes |
1BEH |
Erster Partitionseintrag (siehe nächste Tabelle) |
16 Bytes |
1CEH |
Zweiter Partitionseintrag |
16 Bytes |
1DEH |
Dritter Partitionseintrag |
16 Bytes |
1EEH |
Vierter Partitionseintrag |
16 Bytes |
1FEH |
Ausführbarer Marker oder Signatur des bootfähigen Sektors oder magische Zahl (AAH 55H) |
2 Bytes |
Gesamt = 512 Bytes |
Alle erweiterten Partitionen sollten innerhalb des durch den erweiterten Partitionseintrag reservierten Speicherplatzes vorhanden sein. Nur zwei der erweiterten Partitionen sollen verwendet werden, die erste als normale Partition und die zweite als eine weitere erweiterte Partition, falls vorhanden. Mithilfe einer Masterpartitionstabelle können wir daher den Speicherort einer weiteren erweiterten Masterpartitionstabelle daneben ermitteln, falls vorhanden.
Format der Partitionstabelleneinträge
Das Format der Partitionstabelleneinträge aller Partitionen im MBR ist in der nächsten Tabelle angegeben. Jeder Partitionseintrag eines MBR kann in die folgenden Bytes mit ihren spezifischen Bedeutungen unterteilt werden:
Boottyp-Indikatorbyte (1 Byte): Wenn dieses Byte 00H ist, bedeutet dies, dass die Partition nicht aktiv ist, und wenn das Byte 80H ist, bedeutet dies, dass die Partition eine aktive oder bootfähige Partition ist. Obwohl das Vorhandensein eines anderen Bytes nicht erwartet wird, kann das Vorhandensein eines anderen Bytes auf eine Beschädigung der Partitionstabelle oder einen Virusangriff in der Partitionstabelle zurückzuführen sein.
Startzylinder – Kopf – Sektornummer der Partition (3 Bytes): Wenn wir die CHS (Zylinder, Kopf und Sektor) einer beliebigen Festplatte berechnen, werden die physischen CHS wie folgt gezählt:
- Der physische Sektor wird beginnend bei 1 gezählt.
- Die physische Kopfzahl wird ab 0 gezählt.
- Der physikalische Zylinder wird ab 0 gezählt (Details siehe vorheriges Kapitel)
- Das Byte am Offset 01H stellt die Startkopfnummer der Partition im Hexadezimalsystem dar.
Die 6 niederwertigsten Bits des Bytes am Offset 02H ergeben die Startsektornummer der Partition und die Kombination der verbleibenden 2 Bits (als zwei höchstwertige Bits) plus 8 Bits eines weiteren Bytes am Offset 03H (die restlichen 8 niederwertigsten Bits der 10-Bit-Zahl) ergibt die Startzylindernummer der Partition.
Versatz |
Bedeutung |
Größe |
Beschreibung |
00 Uhr |
Boot-Typ-Indikator-Byte |
1 Byte |
Wenn das Byte 00H ist, ist die Partition inaktiv, und wenn das Byte 80H ist , ist die Partition aktiv (oder bootfähig). |
01 Uhr |
Kopfnummer des Beginns der Partition |
1 Byte |
Startkopfnummer der Partition im Hexadezimalsystem |
02 Uhr |
Sektor- und Zylindernummer am Anfang der Partition |
2 Bytes |
6 Bits des ersten Bytes ergeben die Startsektornummer und die Kombination der verbleibenden 2 Bits (als zwei höchstwertige Bits) plus 8 Bits eines anderen Bytes (die restlichen 8 niederwertigsten Bits der 10-Bit-Zahl) ergibt die Startzylindernummer der Partition |
04 Uhr |
Dateisystem-Indikator-Byte |
1 Byte |
Dateisystemindikator-Byte im Hexadezimalsystem (Indikatoren finden Sie in der nächsten Tabelle) |
05 Uhr |
Kopfnummer des Endes der Partition |
1 Byte |
Endkopfnummer der Partition im Hexadezimalsystem |
06 Uhr |
Sektor- und Zylindernummer am Ende der Partition |
2 Bytes |
6 Bits des ersten Bytes ergeben die Endsektornummer und die Kombination der verbleibenden 2 Bits (als zwei höchstwertige Bits) plus 8 Bits eines weiteren Bytes (die restlichen 8 niederwertigsten Bits der 10-Bit-Zahl) ergibt die Endzylindernummer der Partition |
08 Uhr |
Relative Sektornummer am Anfang der Partition |
4 Bytes |
Anzahl der Sektoren zwischen dem MBR und dem ersten Sektor in der Partition |
0CH |
Anzahl der Sektoren der Partition |
4 Bytes |
Anzahl der Sektoren in der Partition |
Gesamt = 16 Bytes |
Die Zylinder- und Sektorkodierung wurde im Beispiel einer als nächstes durchgeführten Beispielstudie einer Partitionstabelle angegeben.
Dateisystem-Indikatorbyte (1 Byte): Das Dateisystem-Indikatorbyte am Offset 04H stellt das Dateisystem dieser Partition dar. Die Tabelle mit den Dateisystem-Indikatorbytes für verschiedene Dateisysteme finden Sie als Nächstes in diesem Kapitel.
Endzylinder – Kopf – Sektornummer der Partition (3 Bytes): Die Kodierung ist dieselbe wie für Startzylinder – Kopf – Sektornummer der Partition.
Relative Sektornummer vom Anfang der Partition (4 Bytes): Anzahl der Sektoren zwischen dem MBR und dem ersten Sektor in der Partition im Hexadezimalsystem.
Anzahl der Sektoren der Partition (4 Bytes): Anzahl der Sektoren in der Partition im Hexadezimalsystem.
Man sollte immer daran denken, dass die Zylinder-, Kopf- und Sektornummern diejenigen sind, die an das BIOS übergeben werden sollten. Wenn das BIOS also eine Übersetzung verwendet (LBA-Modus oder INT 13H Extensions Support), stellen die Werte möglicherweise nicht die physischen CHS-Werte dar. Bei großen Festplatten (größer als 8,4 GB) sind die CHS-Werte möglicherweise ungültig. Diese Werte sollten im Allgemeinen ignoriert und stattdessen die absoluten Sektorwerte verwendet werden.
Die folgende Abbildung zeigt den MBR einer Festplatte mit FAT32-Partitionen. Der hervorgehobene 64-Byte-Bereich am Ende der Abbildung stellt die Masterpartitionstabelle des MBR dar.
Die Kodierung für das Start- und End-CHS lautet wie folgt:
- Beim Offset 00H bedeutet 80 (Hex), dass die Partition eine aktive Partition ist.
- Beim Offset 01H stellt 01 (Hex) die Startkopfnummer = 1 dar.
- Die Kombination aus zwei Bytes am Offset 02H und 03H bildet den Startsektor und die Zylindernummer der Partition gemäß der folgenden Kodierung:
MBR einer Festplatte mit FAT32-Partitionen
Daher ist der Start-CHS der Partition = 0-0-1.
Ebenso lautet die Kopfnummer für die Endung der Partition FE (Hex), also 254, und die Kodierung für den Endzylinder und die Sektornummer der Partition ist in der folgenden Tabelle angegeben:
Somit lautet die End-CHS der Partition 701-254-63.
Das Byte 0B (Hex) bei Offset 04H ist das Dateisystem-Indikatorbyte für die Partition. Das Byte 0B (H) zeigt an, dass die Partition das FAT32-Dateisystem hat. Die Tabelle für verschiedene Dateisysteme und ihre Dateisystem-Indikatorbytes ist wie folgt:
Dateisystem-Indikator-Byte in Hexadezimal |
Partition/ Dateisystem Beschreibung |
00 Uhr |
Unbenutzter/leerer Partitionstabelleneintrag
(Denken Sie daran, dass dies nicht verwendet wird, um ungenutzten Bereich auf der Festplatte zu kennzeichnen, sondern einen ungenutzten Partitionstabelleneintrag kennzeichnet) |
01 Uhr |
DOS 12-Bit FAT
(Der Typ 01H ist für Partitionen bis zu 15 MB) |
02 Uhr |
XENIX: Root-Dateisystem |
03 Uhr |
XENIX /usr-Dateisystem (veraltet)
(XENIX ist ein alter Bestandteil von Unix V7. Das Microsoft XENIX-Betriebssystem wurde im August 1980 angekündigt. Es war eine portable und kommerzielle Version des Unix-Betriebssystems für Intel 8086, Zilog Z8000, Motorola M68000 und Digital Equipment PDP-11. Microsoft führte XENIX 3.0 im April 1983 ein. SCO lieferte 1983 sein erstes XENIX für 8088/8086 aus.) |
04 Uhr |
16-Bit-FAT, DOS 3.0+ (Partitionsgröße < 32 MB)
(Einige alte DOS-Versionen hatten einen Fehler, der erforderte, dass sich diese Partition in den ersten physischen 32 MB der Festplatte befand.) |
05 Uhr |
DOS Extended ( DOS 3.3+ Erweitertes Volume)
Unterstützt maximal 8,4 GB große Festplatten. Bei diesem Typ 05H verwendet DOS/Windows den erweiterten BIOS-Aufruf nicht, selbst wenn dieser verfügbar ist.) |
06 Uhr |
16-Bit-FAT, DOS Big, DOS 3.31+ (Partitionsgröße >= 32 MB)
(Partitionen sind für DOS und Windows 95/98 maximal 2 GB groß, mit maximal 65536 Clustern und jeweils maximal 32 KB pro Cluster. Windows NT kann mit 64-KB-Clustern FAT16-Partitionen mit einer Größe von bis zu 4 GB erstellen.) |
07 Uhr |
OS/2 IFS (Installable File System) (HPFS ist das bekannteste Beispiel für dieses Dateisystem. OS/2 berücksichtigt für jedes installierte IFS nur Partitionen mit der ID 7. Aus diesem Grund enthält das EXT2 IFS-Paket einen speziellen Gerätetreiber „Linux-Partitionsfilter“, um OS/2 vorzugaukeln, dass Linux-Partitionen die ID 07 hätten). |
07 Uhr |
Fortgeschrittenes Unix |
07 Uhr |
Windows NT NTFS |
07 Uhr |
QNX2.x (vor 1988)
(Für das aktuelle Dateisystem des Partitionstyps 07H sollte der Boot-Record der Partition überprüft werden) |
08 Uhr |
OS/2 (nur v1.0 bis v1.3) |
08 Uhr |
AIX-Bootpartition
[AIX (Advanced Interactive Executive) ist die IBM-Version von Unix] |
08 Uhr |
SplitDrive |
08 Uhr |
DELL-Partition über mehrere Laufwerke |
08 Uhr |
Commodore DOS |
08 Uhr |
QNX 1.x und 2.x
(„qny“ gemäß QNX-Partitionen) |
09 Uhr |
AIX-Datenpartition |
09 Uhr |
Coherent-Dateisystem
[Coherent war ein UNIX-ähnliches Betriebssystem für die 286-386-486-Systeme, das von der Mark Williams Company unter der Leitung von Bob Swartz vermarktet wurde. Es war für seine gute Dokumentation bekannt. Es wurde 1980 eingeführt und am 1. Februar 1995 eingestellt. Die letzten Versionen sind V3.2 für 286-386-486 und V4.0 (Mai 1992, mit geschütztem Modus) nur für 386-486. Es wurde für 99 US-Dollar pro Kopie verkauft und Gerüchten zufolge wurden 40.000 Kopien verkauft. Eine Coherent-Partition muss primär sein.] |
09 Uhr |
QNX 1.x und 2.x („qnz“ gemäß QNX Partitions ) |
0aH |
OS/2 Boot Manager
(OS/2 ist das von Microsoft und IBM als Nachfolger von MS-DOS entwickelte Betriebssystem) |
0aH |
Kohärente Swap-Partition |
0aH |
OPUS
(Open Parallel Unisys Server) |
0bH |
WIN95 OSR2 32-Bit FAT
(OSR2 steht für „OEM Service Release 2“ von Microsoft. Es ist für Partitionen bis zu 2047 GB. Fast immer haben Windows 95/98/ME dasselbe Dateisystem, nämlich FAT-32, innerhalb derselben Partitionsgrenzen.) |
0 cH |
LBA-mapped WIN95 OSR2 32-bit FAT
(Es verwendet Logical Block Addressing – Modus der Interrupt 13H-Erweiterungen, daher können wir sagen, dass dies das Extended INT 13H-Äquivalent von 0BH ist . Fast immer haben Windows 95/98/ME das gleiche Dateisystem, nämlich FAT-32, innerhalb der gleichen Partitionsgrenzen) |
0eH |
LBA-mapped WIN95: DOS 16-bit FAT oder Logical Block Addressable VFAT
(dasselbe wie 06H , verwendet aber den LBA-Modus von INT 13H) |
0fH |
LBA-mapped WIN95: Erweiterte Partition oder Logical Block Addressable VFAT
(Es ist dasselbe wie 05H , verwendet aber den LBA-Modus von INT 13H. Windows 95 verwendet 0EH und 0FH als erweiterte INT13H-Äquivalente von 06H und 05H . Windows NT erkennt die vier Windows 95/98/ME-Typen 0BH , 0CH , 0EH und 0FH nicht .) |
10 Stunden |
OPUS
(Octal Program Updating System) |
11 Uhr |
Versteckter DOS 12-Bit-FAT- oder OS/2-Boot-Manager, versteckte 12-Bit-FAT-Partition oder DOS aus Sicht von OS/2 (Wenn der OS/2-Boot-Manager eine DOS-Partition bootet, versteckt er alle primären DOS-Partitionen außer der einen, die gebootet wird, indem er ihre ID ändert und 01H , 04H , 06H und 07H zu 11H , 14H , 16H und 17H wird . |
12 Uhr |
Compaq-Konfigurations-/Diagnosepartition
(Wird von Compaq als Partition für das Konfigurationsprogramm verwendet. Es handelt sich um eine FAT-kompatible Partition, die die Dienstprogramme bootet und einem LILO-Menü wie MS-DOS hinzugefügt werden kann.) |
14 Uhr |
(Verstecktes DOS 16-Bit FAT oder OS/2 Boot Manager Verstecktes DOS 16-Bit FAT) <32M- Partition
(Partitionsgröße ist kleiner als 32M. ID 14H ergibt sich aus der Verwendung von Novell DOS 7.0 FDISK zum Löschen der Linux Native-Partition.) |
15 Uhr |
Verstecktes DOS-Extended |
16 Uhr |
(Verstecktes DOS 16-Bit FAT oder OS/2 Boot Manager verstecktes 16-Bit FAT) >=32M Partition |
17 Uhr |
OS/2 Boot Manager versteckte HPFS-Partition oder verstecktes IFS (z. B. HPFS) |
17 Uhr |
Versteckte NTFS-Partition |
18 Uhr |
AST SmartSleep-Partition oder spezielle Windows-Auslagerungsdatei von AST („Zero-Volt Suspend“-Partition)
[AST Research, Inc. (benannt nach den Initialen der Gründer Albert Wong, Safi Qureshey und Thomas Yuen). Ascentia-Laptops haben eine „Zero-Volt Suspend-Partition“ oder „SmartSleep-Partition“ mit einer Größe von 2 MB+Speichergröße.] |
Dateisystem-Indikator-Byte in Hexadezimal |
Partition/ Dateisystem Beschreibung |
19 Uhr |
Willowtech Photon COS
(Code 19H wird von Willow Schlanger für Willowtech Photon COS beansprucht. |
1bH |
Versteckte WIN95 OSR2 32-Bit FAT oder versteckte Windows 95 FAT32-Partition |
1 cH |
LBA-mapped Hidden WIN95 OSR2 32-bit FAT
(Es handelt sich um eine versteckte Windows95 FAT32-Partition, die den LBA-Modus von INT 13H Extensions verwendet) |
1eH |
LBA-zugeordnete versteckte WIN95 16-Bit FAT- oder versteckte LBA VFAT-Partition |
1FH |
LBA zugeordnete versteckte WIN95 Extended- oder versteckte erweiterte LBA VFAT-Partition |
20 Stunden |
OFSI
(Willowsoft Overture-Dateisystem) |
21 Uhr |
Offiziell als „Reserviert“ aufgeführt
(HP Volume Expansion, SpeedStor-Variante). |
21 Uhr |
FSO2
(Beansprucht für FSO2 (Oxygen File System) von Dave Poirier) |
22 Uhr |
FSO2 Extended Partition
(von Dave Poirier als Oxygen Extended Partition beansprucht) |
23 Uhr |
Offiziell als Reserviert gelistet |
24 Stunden |
NEC DOS 3.x |
26 Stunden |
Offiziell als Reserviert gelistet |
31 Uhr |
Offiziell als Reserviert gelistet |
32 Stunden |
NOS (Netzwerkbetriebssystem)
( 32H wird vom Betriebssystem NOS verwendet, das von Alien Internet Services in Melbourne, Australien, entwickelt wird. Die ID 32H wurde nicht nur gewählt, weil sie eine der wenigen noch verfügbaren war, sondern auch, weil 32 KB die Größe des EEPROM ist, für die das Betriebssystem ursprünglich vorgesehen war. |
33 Stunden |
Offiziell als Reserviert gelistet |
34 Stunden |
Offiziell als Reserviert gelistet |
35 Stunden |
JFS unter OS/2 oder eCS
[ 35H wird von OS/2 Warp Server for e-Business, OS/2 Convenience Pack (auch bekannt als Version 4.5) und eComStation (eCS, eine OEM-Version von OS/2 Convenience Pack) für die OS/2-Implementierung von JFS (IBM AIX Journaling File System) verwendet] |
36 Stunden |
Offiziell als Reserviert gelistet |
38 Stunden |
THEOS v3.2 (2 GB-Partition) |
39 Stunden |
Plan 9-Partition
( Plan 9 ist ein Betriebssystem, das bei Bell Labs für viele Architekturen entwickelt wurde. Ursprünglich verwendete Plan 9 einen nicht zugewiesenen Bereich am Ende der Festplatte. Die 3. Ausgabe von Plan 9 verwendet Partitionen vom Typ 39H , die in Unterpartitionen unterteilt sind, die in der Plan 9- Partitionstabelle im zweiten Sektor der Partition beschrieben sind.) |
39 Stunden |
THEOS v4 übergreifende Partition |
3aH |
THEOS v4 (4 GB-Partition) |
3bH |
THEOS v4 Erweiterte Partition
( THEOS ist ein Mehrbenutzer-Multitasking-Betriebssystem für PCs, das 1983 von Timothy Williams entwickelt wurde.) |
3 cH |
PartitionMagic-Wiederherstellungspartition
(Wenn ein PowerQuest -Produkt wie Partition Magic oder Drive Image Änderungen an der Festplatte vornimmt, ändert es zuerst das Typflag auf 3CH, damit das Betriebssystem nicht versucht, es zu ändern. Am Ende des Vorgangs wird es wieder auf den ursprünglichen Zustand zurückgesetzt. Daher ist ein 3CH-Typflag nur dann zu sehen, wenn der Vorgang irgendwie unterbrochen wurde, z. B. durch Ausschalten, Neustart des Benutzers usw. Wenn Sie es manuell mit einem Partitionstabelleneditor oder einem beliebigen Festplattenbearbeitungsprogramm zurückändern, ist in den meisten Fällen alles in Ordnung.) |
3 dH |
Verstecktes NetWare |
40 Stunden |
Venix 80286
(Dies ist ein sehr altes Unix-ähnliches Betriebssystem für PCs.) |
41 Stunden |
Linux/MINIX (gemeinsame Nutzung der Festplatte mit DR-DOS)
(DR-DOS steht für Digital Research-Disk Operating System.) |
41 Stunden |
Persönlicher RISC-Boot |
41 Stunden |
PPC PReP (Power PC Reference Platform) Boot- Partition |
42 Stunden |
Linux-Swap (gemeinsame Nutzung der Festplatte mit DR-DOS) |
42 Stunden |
SFS (Secure File System)
( SFS ist ein verschlüsselter Dateisystemtreiber für DOS auf 386+ PCs, geschrieben von Peter Gutmann.) |
Dateisystem-Indikator-Byte in Hexadezimal |
Partition/ Dateisystem Beschreibung |
42 Stunden |
Dynamischer erweiterter Partitionsmarker von Windows 2000
(Wenn in der alten Partitionstabelle ein Partitionstabelleneintrag vom Typ 42H vorhanden ist, ignoriert Windows 2000 die alte Partitionstabelle und verwendet eine proprietäre Partitionstabelle und ein proprietäres Partitionierungsschema (LDM oder DDM). Rein dynamische Datenträger (die keine fest verknüpften Partitionen enthalten) haben nur einen einzigen Partitionstabelleneintrag vom Typ 42H , um den gesamten Datenträger zu definieren. Dynamische Datenträger speichern ihre Datenträgerkonfiguration in einer Datenbank, die sich in einem 1 MB großen privaten Bereich am Ende jedes dynamischen Datenträgers befindet.) |
43 Stunden |
Linux-nativ (gemeinsame Nutzung der Festplatte mit DR-DOS) |
44 Stunden |
GoBack-Partition
( GoBack ist ein Dienstprogramm, das an der Festplatte vorgenommene Änderungen aufzeichnet, sodass Sie frühere Zustände anzeigen oder wiederherstellen können. Es übernimmt die Festplatten-E/A wie ein Datenträgermanager und speichert seine Protokolle in einer eigenen Partition.) |
45 Stunden |
Boot-US-Bootmanager
( Der Boot-US-Bootmanager (Ulrich Straub) kann im MBR, einer separaten primären Partition oder auf einer Diskette installiert werden. Bei der Installation auf einer primären Partition erhält diese Partition die ID 45H . Diese Partition enthält kein Dateisystem, sondern nur den Bootmanager und belegt einen einzigen Zylinder (unter 8,4 GB).) |
45 Stunden |
Direkt |
45 Stunden |
EUMEL/Ankündigung |
46 Stunden |
EUMEL/Ankündigung |
47 Stunden |
EUMEL/Ankündigung |
48 Stunden |
EUMEL/Elan
( EUMEL , später bekannt als Ergos L3 , sind die von Jochen Liedtke bei GMD entwickelten Mehrbenutzer-Multitaskingsysteme unter Verwendung der Programmiersprache Elan . Sie wurden an deutschen Schulen im Informatikunterricht eingesetzt.) |
4aH |
AdaOS Aquila |
4aH |
Leichtgewichtiges ALFS/THIN-Dateisystem für DOS |
4cH |
Oberon-Partition |
4dH |
QNX4.x |
4eH |
QNX4.x 2. Partition |
4fH |
QNX4.x 3. Partition
( QNX ist ein POSIX ( Portable Operating System Interface for Unix )-zertifiziertes, verteiltes, fehlertolerantes Mikrokernel-Betriebssystem für 386 und höher, einschließlich Unterstützung für 386EX in eingebetteten Anwendungen.) |
4fH |
Oberon-Boot-/Datenpartition |
50 Stunden |
OnTrack Disk Manager (ältere Versionen), Nur-Lese-Partition ( Disk Manager ist ein Programm von OnTrack , das es Benutzern ermöglicht, IDE-Festplatten mit mehr als 504 MB unter DOS zu verwenden. Linux-Kernel-Versionen vor 1.3.14 koexistieren nicht mit DM.) |
50 Stunden |
Lynx RTOS (Real-Time Operating System)
( Lynx RTOS bietet Benutzern die Möglichkeit, bis zu 14 Partitionen mit jeweils 2 GB auf SCSI- und IDE-Laufwerken zu platzieren, für insgesamt bis zu 28 GB Dateisystemspeicherplatz.) |
50 Stunden |
Einheimischer Oberon |
51 Stunden |
OnTrack Disk Manager (DM6.0 Aux1) , Partition lesen/schreiben |
51 Stunden |
Novell |
52 Stunden |
CP/M |
52 Stunden |
Microport SysV/AT oder Microport System V/386 |
53 Stunden |
OnTrack Disk Manager (DM6.0 Aux3), Nur-Schreib-Partition |
54 Stunden |
OnTrack Disk Manager 6.0 Dynamisches Laufwerk-Overlay |
55 Stunden |
EZ-Drive -Partition
( EZ-Drive ist ein weiteres Festplattenmanager-ähnliches Programm, das 1992 von MicroHouse entwickelt wurde. Jetzt wird es von StorageSoft vermarktet .) |
56 Stunden |
Partitioniertes Volume mit Golden Bow VFeature.
(Dies ist auch eine Dienstprogrammsoftware wie ein Datenträgermanager. Dies ist ein nicht standardmäßiges DOS-Volume.) |
56 Stunden |
DM auf EZ-BIOS umgestellt |
57 Stunden |
DrivePro
( DrivePro wurde 1992 von MicroHouse entwickelt . Jetzt wird es von StorageSoft vermarktet .) |
57 Stunden |
VNDI-Partition |
5cH |
Partitioniertes Priam EDisk- Volume
( Priam EDisk ist eine Dienstprogrammsoftware vom Typ „Datenträgermanager“. Dies ist ein nicht standardmäßiges DOS-Volume.) |
61H |
SpeedStor
( Storage Dimensions SpeedStor Partitioned Volume. Dies ist ein nicht standardmäßiges DOS-Volume. Es handelt sich um eine Dienstprogrammsoftware vom Typ Disk Manager.) |
63 Stunden |
Unix-System V/386, 386/ix, SCO, ISC Unix, UnixWare, Mach, MtXinu BSD 4.3 auf Mach, GNU Hurd |
64 Stunden |
Novell NetWare 286, 2.xx |
Dateisystem-Indikator-Byte in Hexadezimal |
Partition/ Dateisystem Beschreibung |
64 Stunden |
Durch PC-ARMOUR geschützte Partition
( 64H wird vom PC-ARMOUR- Festplattenschutz von Dr. A. Solomon verwendet und soll die Festplatte unzugänglich machen, bis das richtige Kennwort eingegeben und dann ein INT 13H-Hook über dem Top-of-Memory geladen wurde, der CHS = 0-0-2 mit einer Kopie der echten Partitionstabelle anzeigte, wenn 0-0-1 angefordert wurde). |
65 Stunden |
Novell NetWare 3.86, 3.xx oder 4.xx
( Novell Netware 3.0 und spätere Versionen verwenden eine Partition pro Laufwerk. Innerhalb dieser Partitionen werden logische Volumes zugewiesen. Die Volumes können auf mehrere Laufwerke aufgeteilt werden. Das verwendete Dateisystem heißt Turbo FAT und ähnelt nur sehr vage dem DOS FAT-Dateisystem. Novell Netware war früher das wichtigste verfügbare Netzwerkbetriebssystem. Netware 68 oder S-Net (1983) war für ein Motorola 68000, Netware 86 für ein Intel 8086 oder 8088. Netware 286 war für ein Intel 80286 und existierte in verschiedenen Versionen, die später zu Netware 2.2 zusammengeführt wurden . Netware 386 war eine Neufassung in C für das Intel 386, die später in Netware 3.x- Versionen (3.0, 3.1, 3.10, 3.11 und 3.12 usw.) umbenannt wurde. Sein Nachfolger Netware 4.xx hatte die Versionen 4.00, 4.01, 4.02, 4.10 und 4.11. Dann kam Intranetware) |
66 Stunden |
Novell Netware SMS-Partition
( SMS steht für Storage Management Services. Es wird derzeit nicht verwendet.) |
67H |
Novell |
68 Stunden |
Novell |
69 Stunden |
Novell Netware 5+ und Novell Netware NSS-Partition
( NSS steht für Novell Storage Services.) |
70 Stunden |
DiskSecure Multi-Boot |
71H |
Offiziell als reserviert gelistet |
73 Stunden |
Offiziell als reserviert gelistet |
74 Stunden |
Offiziell als reserviert gelistet |
74 Stunden |
Scramdisk-Partition
( Scramdisk ist eine Software zur Festplattenverschlüsselung. Sie unterstützt Containerdateien, dedizierte Partitionen vom Typ 74H und in WAV-Audiodateien versteckte Festplatten.) |
75 Stunden |
IBM PC/IX |
76 Stunden |
Offiziell als reserviert gelistet |
77H |
M2FS/M2CS-Partition |
77H |
QNX 4.x |
78 Stunden |
XOSL-Dateisystem
( XOSL -Bootloader-Dateisystem) |
78 Stunden |
QNY 4.x |
79 Stunden |
QNZ 4.x |
7EH |
FIX |
7Fh |
Alt-OS-Entwicklungspartitionsstandard |
80 Stunden |
Altes MINIX, MINIX v1.1 bis v1.4a |
81H |
MINIX 1.4b und höher
( MINIX ist ein Unix-ähnliches Betriebssystem, das von Andy Tanenbaum und Studenten der Vrije University in Amsterdam zwischen 1989 und 1991 geschrieben wurde. Es läuft auf PCs (8086 und höher), Macintosh, Atari, Amiga und Sparc. |
81H |
Frühes Linux |
81H |
Mitac Erweiterter Datenträgermanager |
82H |
Prime |
82H |
Solaris x86
( Solaris erstellt eine einzelne Partition mit der ID 82H und verwendet dann Sun-Festplattenbezeichnungen innerhalb der Partition, um sie weiter aufzuteilen.) |
82H |
Linux-Swap-Partition |
83 Stunden |
Linux Native Partition oder Linux Native File System oder Linux Ext2fs
(Linux ist ein Unix-ähnliches Betriebssystem, das seit 1991 von Linus Torvalds und vielen anderen im Internet geschrieben wurde. Es läuft auf PCs ab 386 und einer Vielzahl anderer Hardware. Es wird unter der GPL (General Public License) vertrieben. Verschiedene Dateisystemtypen wie xiafs, ext2, ext3, reiserfs usw. verwenden alle die ID 83H .) |
84 Stunden |
Verstecktes OS/2-Laufwerk C: oder neu nummerierte OS/2-Partition vom Typ 04.
( Die neu nummerierte OS/2-Partition vom Typ 04h bezieht sich auf das Verstecken des DOS-Laufwerks C:) |
84 Stunden |
Ruhezustandspartition
(Gemeldet für verschiedene Laptopmodelle, z. B. verwendet auf Dell Latitudes (mit Dell-BIOS), die das Dienstprogramm MKS2D verwenden.) |
85 Stunden |
Erweiterte Linux-Partition |
86 Stunden |
Alter Superblock der Linux-RAID-Partition |
86 Stunden |
FAT16-Volume/Stripe-Set (Windows NT) oder NTFS-Volume-Set
(Es handelt sich um ein Legacy Fault Tolerant FAT16-Volume.) |
87H |
Fehlertolerante gespiegelte HPFS-Partition oder NTFS-Volume-Set oder NTFS-Volume/Stripe-Set
(Älteres fehlertolerantes NTFS-Volume. Fehlertolerante gespiegelte HPFS-Partition.) |
8aH |
Linux-Kernel-Partition
(wird von AiR-BOOT verwendet) |
Dateisystem-Indikator-Byte in Hexadezimal |
Partition/ Dateisystem Beschreibung |
8bH |
Älteres fehlertolerantes FAT32-Volume |
8cH |
Älteres fehlertolerantes FAT32-Volume mit BIOS Extended INT 13H. |
8dH |
Free FDISK, versteckte primäre DOS-FAT12-Partition
( Free FDISK ist das von FreeDOS verwendete FDISK . Es versteckt die Typen 01H , 04H , 05H , 06H , 0BH , 0CH , 0EH und 0FH durch Hinzufügen der Dezimalzahl 140 (8CH) .) |
8eH |
Linux Logical Volume Manager-Partition |
90 Stunden |
Freie versteckte primäre DOS-FAT16-Partition von FDISK |
91H |
Kostenlose versteckte erweiterte DOS-Partition von FDISK |
92 Stunden |
Freie versteckte primäre FDISK-DOS-FAT16-Partition |
93 Stunden |
Versteckte native Linux-Partition |
93 Stunden |
Amoeba-Dateisystem |
94 Stunden |
Amoeba Bad Block Table
(Amoeba ist ein verteiltes Betriebssystem, das seit 1981 von Andy Tanenbaum zusammen mit Frans Kaashoek, Sape Mullender, Robert van Renesse und anderen geschrieben wurde. Es läuft auf PCs (386 und höher), Sun3, Sparc, 68030. Es ist für Universitäten zu Forschungs- und Lehrzwecken kostenlos.) |
95 Stunden |
MIT EXOPC native partition |
97H |
Freie FDISK versteckte primäre DOS FAT32-Partition |
98 Stunden |
Freie FDISK versteckte primäre DOS FAT32-Partition (LBA) |
99 Stunden |
Mylex EISA SCSI oder DCE376 logisches Laufwerk
(Wird vom Mylex DCE376 EISA SCSI- Adapter für Partitionen verwendet, die über den 1024-Zylinder-Bereich eines Laufwerks hinausgehen.) |
9aH |
Freie FDISK versteckte primäre DOS FAT16-Partition (LBA) |
9bH |
Freie versteckte erweiterte DOS-Partition (LBA) von FDISK |
9fH |
BSD/OS |
a0H |
Phoenix NoteBIOS Power Management-Partition „Save-to-Disk“ oder Laptop-Ruhezustandspartition
(wird für verschiedene Laptops wie IBM Thinkpad , Phoenix NoteBIOS , Toshiba unter Namen wie Zero-Volt-Suspend- Partition, Suspend-to-Disk -Partition, Save-to-Disk- Partition, Power-Management-Partition , Ruhezustandspartition gemeldet, normalerweise am Anfang oder Ende des Festplattenbereichs.) |
a1H |
Laptop-Ruhezustandspartition
(Wird als „Save-to-Disk“-Partition auf einem NEC 6000H-Notebook verwendet. Auf Systemen mit Phoenix -BIOS werden die Typen A0H und A1H verwendet . Dabei wird das Dienstprogramm Phoenix PHDISK verwendet.) |
a1H |
HP Volume Expansion (SpeedStor-Variante) |
a3H |
Offiziell als Reserviert gelistet |
a4H |
Offiziell als Reserviert gelistet |
a5H |
BSD/386, 386BSD, NetBSD, FreeBSD
(386BSD ist ein Unix-ähnliches Betriebssystem, eine Portierung von 4.3BSD Net/2 auf den PC, die um 1991 von Bill Jolitz durchgeführt wurde.) |
a6H |
OpenBSD
(OpenBSD, geleitet von Theo de Raadt, hat sich von NetBSD abgespalten. Es legt den Schwerpunkt auf Sicherheit.) |
a7H |
NEXTSTEP
( NEXTSTEP basiert auf Mach 2.6 und Funktionen von Mach 3.0 . Es ist ein echtes objektorientiertes Betriebssystem und eine echte objektorientierte Benutzerumgebung. |
a8H |
Mac OS-X
( Apples OS-X verwendet diesen Typ für seine Dateisystempartition) |
a9H |
NetBSD |
aaH |
Olivetti Fat 12 1,44 MB Servicepartition
(Enthält ein reines DOS 6.22 und ein Dienstprogramm zum Austauschen der Typen 06H und AAH in der Partitionstabelle.) |
abH |
Mac OS-X-Bootpartition
(Apples OS-X (Darwin Intel) verwendet diesen Typ für seine Bootpartition.) |
abH |
Partition |
tot |
ShagOS-Dateisystem |
vonH |
ShagOS-Swap-Partition |
b0H |
BootStar Dummy
(Der Bootmanager BootStar verwaltet eine eigene Partitionstabelle mit bis zu 15 primären Partitionen. Er füllt ungenutzte Einträge im MBR mit BootStar Dummy-Werten.) |
b1H |
Offiziell als Reserviert gelistet |
b3H |
Offiziell als Reserviert gelistet |
b4H |
Offiziell als Reserviert gelistet |
b6H |
Offiziell als Reserviert gelistet |
B6H |
Windows NT-Spiegelsatz (Master), FAT16-Dateisystem |
b7H |
BSDI-Dateisystem (sekundärer Swap), BSDI BSD/386-Dateisystem |
B7H |
Windows NT-Spiegelsatz (Master), NTFS-Dateisystem |
Dateisystem-Indikator-Byte in Hexadezimal |
Partition/ Dateisystem Beschreibung |
b8H |
BSDI BSD/386-Swap-Partition (sekundäres Dateisystem)
(BSDI (Berkeley Software Design, Inc.) wurde von ehemaligen CSRG-Mitgliedern (UCB Computer Systems Research Group) gegründet. Ihr auf Net/2 basierendes Betriebssystem hieß BSD/386.) |
bbH |
Boot-Assistent ausgeblendet |
Also |
Solaris 8-Bootpartition |
c0H |
Gesicherte Partition für DR-DOS/Novell DOS |
C0H |
CTOS |
c0H |
Sichere kleine Partition mit REAL/32 |
c0H |
NTFT-Partition |
c1H |
DR DOS 6.0 LOGIN.EXE-gesicherte 12-Bit-FAT-Partition |
c2H |
Reserviert für DR-DOS 7+ |
c2H |
Verstecktes Linux |
c3H |
Versteckter Linux-Swap |
c4H |
DR DOS 6.0 LOGIN.EXE-gesicherte 16-Bit-FAT-Partition |
c5H |
DRDOS/gesichert (Erweitert) |
c6H |
DRDOS/gesichert (FAT-16, >= 32M)
( DR-DOS 6.0 fügt C0H zum Partitionstyp für eine LOGIN.EXE-gesicherte Partition hinzu, so dass der Benutzer die Kennwortprüfung nicht durch Booten von einer MS-DOS-Diskette umgehen kann. Ansonsten scheinen die Typen C1H , C4H , C5H , C6H und D1H , D4H , D5H , D6H genauso verwendet zu werden wie 1H , 4H , 5H und 6H .) |
c6H |
Beschädigtes FAT16-Volume/Stripe-Set (Windows NT)
(NTFS fügt dem Partitionstyp für deaktivierte Teile eines fehlertoleranten Sets C0H hinzu. Somit erhält man die Typen C6H und C7H .) |
c7H |
Windows NT hat das NTFS-Volume/Stripeset beschädigt |
c7H |
Syrinx-Stiefel |
c8H |
Offiziell als Reserviert gelistet |
c9H |
Offiziell als Reserviert gelistet |
caH |
Offiziell als Reserviert gelistet |
cbH |
Reserviert für DR-DOS gesichertes FAT32 |
ccH |
Reserviert für DR-DOS gesichertes FAT32 (LBA) |
cdH |
CTOS-Speicherauszug |
ceH |
Reserviert für DR-DOS gesichertes FAT16 (LBA) |
d0H |
REAL/32 – sichere große Partition
(REAL/32 ist eine Fortsetzung von DR Multi-User DOS.) |
d1H |
Altes Multi-User-DOS-gesichertes FAT12 |
d4H |
Altes Multi-User-DOS-gesichertes FAT16 <32M |
d5H |
Alte, durch Multi-User-DOS gesicherte erweiterte Partition |
d6H |
Altes Multi-User-DOS-gesichertes FAT16 >=32M |
d8H |
CP/M-86 |
bereits |
Nicht-FS Daten |
dbH |
Digitale Forschung CP/M, Paralleles CP/M, Paralleles DOS |
dbH |
CTOS (Convergent Technologies OS -Unisys) |
dbH |
KDG Telemetry SCPU-Boot
(KDG Telemetry verwendet ID DBH , um ein binäres Image im geschützten Modus des Codes zu speichern, der auf einem x86-basierten SCPU-Modul (Supervisory CPU) aus der DT800-Reihe ausgeführt werden soll.) |
ddH |
Versteckter CTOS Memdump |
deH |
Dell PowerEdge Server-Dienstprogramme (FAT) |
dfH |
DG/UX-Partition des virtuellen Datenträgermanagers |
dfH |
BootIt EMBRM
(Der Bootmanager BootIt verwaltet seine eigene Partitionstabelle mit bis zu 255 primären Partitionen.) |
e0H |
Von ST Microelectronics für ein Dateisystem namens ST AVFS reserviert . |
e1H |
DOS-Zugriff oder erweiterte SpeedStor 12-Bit-FAT-Partition
(Es handelt sich um eine SSTOR-Partition mit mehr als 1023 Zylindern.) |
E2H |
DOS - Nur Lesen |
e3H |
Speicherabmessungen |
e4H |
SpeedStor 16-Bit FAT erweiterte Partition < 1024 Zylinder |
e5H |
Offiziell als Reserviert gelistet |
e5H |
Tandy DOS mit logisch sektoriertem FAT |
e6H |
Offiziell als Reserviert gelistet |
ebH |
BeOS BFS (BFS1)
( BeOS ist ein Betriebssystem, das auf Power PCs läuft) |
edH |
Reserviert für Matthias Pauls Sprytix |
Hey |
Hinweis darauf, dass diesem Legacy-MBR ein EFI-Header folgt |
ifH |
Partition, die ein EFI-Dateisystem enthält |
f0H |
Linux/PA-RISC-Bootloader |
f1H |
Speicherabmessungen |
f2H |
DOS 3.3+ sekundäre Partition |
f2H |
Unisys DOS mit logisch sektoriertem FAT |
f3H |
Offiziell als Reserviert gelistet |
f4H |
SpeedStor große Partition |
F4H |
Prolog-Einzelvolume-Partition |
Dateisystem-Indikator-Byte in Hexadezimal |
Partition/ Dateisystem Beschreibung |
f5H |
Prologue-Partition mit mehreren Volumes
(Die Partition vom Typ F4H enthält ein Volume und wird nicht mehr verwendet. Die Partition vom Typ F5H enthält 1 bis 10 Volumes mit den Namen MD0 bis MD9 . Sie unterstützt ein oder mehrere Systeme. Jedes Volume kann als Dateisystem das NGF- Dateisystem oder das TwinFS -Dateisystem haben .) |
f6H |
Offiziell als Reserviert gelistet |
F6H |
Speicherabmessungen SpeedStor |
faH |
Bochs x86-Emulator von MandrakeSoft |
fbH |
VMware-Dateisystempartition |
fcH |
VMware Swap-Partition
(VMware bietet virtuelle Maschinen, in denen Linux , Windows und FreeBSD ausgeführt werden können .) |
fdH |
Linux-RAID-Partition mit automatischer Erkennung durch persistenten Superblock |
feH |
SpeedStor mehr als 1024 Zylinder |
feH |
LANstep |
feH |
IBM PS/2 IML-Partition (Initial Microcode Load)
(Befindet sich am Ende der Festplatte.) |
feH |
Versteckte Partition im Windows NT-Festplattenadministrator
(Der Windows NT-Festplattenadministrator kennzeichnet versteckte Partitionen, also solche, die zwar vorhanden sind, auf die aber nicht zugegriffen werden kann, als Typ FEH .) |
feH |
Linux Logical Volume Manager-Partition (alt) |
ffH |
XENIX Bad Block-Tabelle |
DOS-Bootdatensatz (DBR) / DOS-Bootsektor
Nach der Partitionstabelle ist der DOS Boot Record (DBR) oder manchmal auch DOS Boot Sector genannt die zweitwichtigste Information auf Ihrer Festplatte. Die meisten kommerziellen Anwendungen zur Datenträgerwiederherstellung sind in der Lage, zerstörte Boot-Records wiederherzustellen.
Der DOS-Boot-Record (DBR) für die erste Partition auf einer Festplatte befindet sich normalerweise im absoluten Sektor 63 (dem 64. Sektor auf dem Festplattenlaufwerk) oder in CHS-Form, d. h. für die meisten Laufwerke können wir sagen, C–H–S = 0–1–1.
Dieser Speicherort kann jedoch je nach SPT (Sektoren pro Spur) des Laufwerks variieren. Beispielsweise befand sich der Boot-Record auf einem alten 245-MB-Laufwerk mit nur 31 SPT im 32. Sektor (Absoluter Sektor 31).
Der DBR wird mit dem FORMAT-Befehl von DOS erstellt. Dieses Programm kann von einer DOS-Diskette (oder direkt von einem anderen Datenträger, unter Einhaltung bestimmter Betriebssystembeschränkungen) ausgeführt werden, um den DBR zu erstellen, nachdem die Partitionierung mit dem FDISK-Befehl abgeschlossen ist.
Der Sektor, auf dem sich DBR befindet, wird für DOS zum logischen Sektor 1 dieser bestimmten Partition. Die von DOS verwendete Sektornummer beginnt mit dem physischen Sektor, auf dem sich DBR befindet.
Der erste logische Sektor jeder DOS-Partition enthält einen DOS Boot Record (DBR) oder DOS-Bootsektor. Die Aufgabe des DBR besteht darin, das Betriebssystem von der Festplatte in den Hauptspeicher des Computers zu laden und dem geladenen Programm die Systemsteuerung zu geben.
Zu diesem Zweck enthält der DBR ein kleines Programm, das vom ausführbaren Programm Master Boot Record (MBR) ausgeführt wird. Alle DOS-Partitionen enthalten den Programmcode zum Booten der Maschine, d. h. zum Laden des Betriebssystems, aber nur die Partition erhält die Kontrolle vom Master Boot Record, die im Partitionstabelleneintrag als aktive Partition angegeben ist.
Das Boot-Programm im DBR sucht im Stammverzeichnis der Partition nach den beiden Programmdateien IBMBIO.COM bzw. IO.SYS und IBMDOS.COM bzw. MSDOS.SYS. IBMBIO.COM und IBMDOS.COM sind zwei versteckte Systemprogrammdateien auf PC-DOS-Systemen oder Original-IBM-Systemen. IO.SYS und MSDOS.SYS hingegen sind zwei versteckte Systemprogrammdateien auf einem MS-DOS-Betriebssystem, das auf IBM-kompatiblen Systemen zur Verfügung steht.
Danach lädt das Programm IO.SYS (oder IBMBIO.COM) das Programm MSDOS.SYS (oder IBMDOS.COM) und das Programm COMMAND.COM. Dieser komplette Vorgang wird als „Booten“ des Computers bezeichnet. Wenn diese Systemdateien im Verzeichnis nicht verfügbar sind, zeigt dieses MBR-Programm beruhigende Fehlermeldungen an wie:
„Ungültiger Systemdatenträger oder Datenträger-E/A-Fehler,
Ersetzen Sie die Diskette und drücken Sie dann eine beliebige Taste …“
Auf dem Bildschirm wird darauf gewartet, dass der Benutzer eine bootfähige Diskette mit den oben genannten Programmen in das Diskettenlaufwerk einlegt und eine Taste drückt.
Da die Diskette keine Partitionen enthält, besitzt sie in ihrem absoluten Sektor 0 auch keine MBR oder Master Partition Table, sondern enthält in ihrem allerersten Sektor den DBR.
Die folgende Tabelle zeigt eine einfache Übersicht über das Layout einer 3½ Zoll großen, 1,44 MB großen Diskette nach der Formatierung mit dem FAT12-Dateisystem. Sie zeigt, wo sich der Boot Record, beide Kopien des FAT, das Stammverzeichnis und der Anfang des Datenbereichs befinden:
Logische Karte einer 3½ Zoll großen, 1,44 MB großen Diskette, formatiert mit dem FAT12-Dateisystem und mit 18 Sektoren pro Spur, 80 Spuren, 2 Seiten und 512 Bytes pro Sektor (unter Verwendung von 1 Sektor pro Cluster). |
Absolute Sektoren |
Inhalt |
0 |
Boot Record |
1 – 9 |
FETT 1 |
10 – 18 |
FETT 2 |
19 – 32 |
Stammverzeichnis |
33 – 2879 |
Datenbereich |
Sie können im Datenbereich auch Unterverzeichnisse mit Dateien erstellen, die darin enthalten zu sein scheinen. Tatsächlich sind Unterverzeichnisse nichts anderes als eine spezielle Datei, die alle Dateien auflistet, die scheinbar in diesem Verzeichnis enthalten sind, und alle relevanten Daten zu jeder Datei, wie z. B. den Speicherort des Startclusters jeder Datei, Datum, Uhrzeit und Dateigröße usw.
Der DBR enthält auch einige wichtige Informationen zur Festplattengeometrie. Diese Informationen befinden sich im ersten Sektor jeder Partition, beispielsweise:
- Sprungcode + NOP
- OEM-Name und Version
- Bytes pro Sektor
- Sektoren pro Cluster
- Reservierte Sektoren
- Anzahl der FAT-Kopien
- Maximale Anzahl an Stammverzeichniseinträgen (aber nicht verfügbar für FAT32)
- Anzahl der Sektoren in der Partition kleiner als 32 MB (daher nicht für FAT32 verfügbar)
- Mediendeskriptor (F8h für Festplatten)
- Sektoren pro FAT (in älteren FAT-Systemen und nicht verfügbar für FAT32)
- Sektoren pro Spur
- Anzahl der Köpfe
- Anzahl der versteckten Sektoren in der Partition
- Anzahl der Sektoren in der Partition
- Anzahl der Sektoren pro FAT
- FAT-Informationsdeskriptor-Flags
- Version des FAT32-Laufwerks
- Clusternummer des Anfangs des Stammverzeichnisses
- Sektornummer des Dateisystem-Informationssektors
- Sektornummer des Backup-Bootsektors
- Reserviert
- Logische Laufwerksnummer der Partition
- Erweiterte Signatur (29H)
- Seriennummer der Partition
- Volumename der Partition
- FAT-Name
- Ausführbarer Code
- Ausführbarer Marker oder magische Zahl (AAH 55H)
Die ersten 3 Bytes des DBR enthalten einen JMP-Befehl, um die Informationen zu überspringen und Erweiterungen zu ermöglichen, da der MBR diesen Sektor in den Speicher lädt und die Ausführung dorthin überträgt. Normalerweise sind diese drei Bytes hexadezimale Zahlen im Format etwa E9 XX XX (Hex) oder EB XX 90 (Hex).
Nach der ersten JMP-Anweisung ist die OEM-ID ein 8-Bit-Feld, das von Microsoft für die OEM-Identifizierung reserviert ist. Die OEM-ID beschreibt das Programm, das den Boot-Record erstellt hat. Dies ist häufig „MSWIN4.0“ für Windows 95/98/ME, „IBM 20.0“ für OS/2 und „MSDOS5.0“ für MS-DOS 4.0 und höher.
Die dritte Hauptkomponente des Bootsektors ist der BIOS-Parameterblock (BPB). Der Festplattenparameterblock ist ein sehr wichtiger Datenbereich für DOS. Er hilft DOS beim Finden von:
- Bytes pro Sektor
- Sektoren pro Cluster
- Reservierte Sektoren
- Anzahl der FAT
- Anzahl der Stammverzeichniseinträge
FAT32-DOS-Bootdatensatzformat |
Versatz |
Beschreibung |
Größe |
00 Uhr |
Sprungcode + NOP |
3 Bytes |
03 Uhr |
OEM-Name und Version |
8 Bytes |
0BH |
Bytes pro Sektor |
2 Bytes |
0DH |
Sektoren pro Cluster |
1 Byte |
0EH |
Reservierte Sektoren |
2 Bytes |
10 Stunden |
Anzahl der FAT-Kopien |
1 Byte |
11 Uhr |
Maximale Anzahl an Stammverzeichniseinträgen (aber nicht verfügbar für FAT32) |
2 Bytes |
13 Uhr |
Anzahl der Sektoren in der Partition kleiner als 32 MB (daher nicht für FAT32 verfügbar) |
2 Bytes |
15 Uhr |
Mediendeskriptor (F8H für Festplatten) |
1 Byte |
16 Uhr |
Sektoren pro FAT (in älteren FAT-Systemen und nicht verfügbar für FAT32) |
2 Bytes |
18 Uhr |
Sektoren pro Spur |
2 Bytes |
1AH |
Anzahl der Köpfe |
2 Bytes |
1 Kanal |
Anzahl der versteckten Sektoren in der Partition |
4 Bytes |
20 Stunden |
Anzahl der Sektoren in der Partition |
4 Bytes |
24 Stunden |
Anzahl der Sektoren pro FAT |
4 Bytes |
28 Stunden |
Flags (Bits 0-4 zeigen aktive FAT-Kopie an) (Bit 7 zeigt an, ob FAT-Spiegelung aktiviert oder deaktiviert ist <Clear ist aktiviert>) (Wenn FAT-Spiegelung deaktiviert ist, werden die FAT-Informationen nur in die durch die Bits 0-4 angegebene Kopie geschrieben) |
2 Bytes |
2AH |
Version des FAT32-Laufwerks (höchstes Byte = Hauptversion, niedrigstes Byte = Nebenversion) |
2 Bytes |
2 Kanäle |
Clusternummer des Anfangs des Stammverzeichnisses |
4 Bytes |
30 Stunden |
Sektornummer des Dateisystem-Informationssektors (Referenziert vom Beginn der Partition) |
2 Bytes |
32 Stunden |
Sektornummer des Backup-Bootsektors (referenziert vom Anfang der Partition) |
2 Bytes |
34 Stunden |
Reserviert |
12 Bytes |
40 Stunden |
Logische Laufwerksnummer der Partition |
1 Byte |
41 Stunden |
Unbenutzt (könnte das höchste Byte des vorherigen Eintrags sein) |
1 Byte |
42 Stunden |
Erweiterte Signatur (29H) |
1 Byte |
43 Stunden |
Seriennummer oder 32-Bit-Binär-ID der Partition
(32-Bit-Binär-ID wird vom Betriebssystem selbst bereitgestellt) |
4 Bytes |
47 Stunden |
Volumename der Partition |
11 Bytes |
52 Stunden |
FAT-Name (in diesem Fall FAT32) |
8 Bytes |
5AH |
Ausführbarer Code |
420 Bytes |
1FEH |
Ausführbarer Marker oder magische Zahl (AAH 55H) |
2 Bytes |
- Gesamtzahl der Sektoren im logischen Datenträger (klein, für logische Datenträgergrößen kleiner oder gleich 32 MB)
- Mediendeskriptor-Byte
- Anzahl der Sektoren pro FA
Diese Informationen helfen uns, den Speicherort von FAT und einigen anderen wichtigen Werten zu finden. Wenn hier falsche Informationen eingegeben oder diese Werte beschädigt werden, ist das Booten von der Festplatte nicht mehr möglich. Manchmal verhindern falsche Informationen im Festplattenparameterblock das Booten von der Festplatte sowie vom Diskettenlaufwerk.
Die Anzahl der Bytes pro Sektor beträgt fast immer 512. Auch wenn dies nicht der Fall ist, muss es sich um eine ganzzahlige Zweierpotenz handeln (z. B. 64, 128 und 256).
Die Anzahl der Sektoren pro Cluster hängt von der Größe des Clusters ab. (Siehe den Abschnitt „Cluster“ weiter oben in diesem Kapitel.) Die Anzahl der FAT-Kopien beträgt fast immer 2.
Anzahl der Stammverzeichnisse: Hängt vom Dateisystem und der Datenträgergröße ab. (Siehe zuvor angegebene Dateisystembeschränkungen und anschließend die Beschreibung des Stammverzeichnisses.)
Gesamtzahl der Sektoren: Schließt versteckte Sektoren aus. Wenn der Wert im BPB 0 ist, wird das Feld in den erweiterten Boot-Record-Informationen verwendet und umgekehrt. Beachten Sie, dass Sie feststellen können, ob die erweiterten Informationen (DOS 4.0 und höher) verfügbar sind, indem Sie das Signaturbyte bei Offset 26H untersuchen.
Alle Sektoren vor dem Bootsektor eines logischen DOS-Laufwerks werden als „versteckte“ Sektoren betrachtet. DOS interpretiert versteckte Sektoren nicht. Normale Diskettenlaufwerke haben 0 versteckte Sektoren. Festplattenpartitionen haben eine Nummer, die ihren Standort auf dem Laufwerk widerspiegelt. Beachten Sie, dass normalerweise der gesamte erste Kopf des ersten Zylinders für die Partitionstabelle reserviert ist, obwohl tatsächlich nur der erste Sektor verwendet wird.
Mediendeskriptor: Wird verwendet, um einen Hinweis auf den Medien- oder Datenträgertyp zu geben. Normale Werte sind 0 für eine erweiterte DOS-Partition und F8H für eine Festplatte. Die Werte der Mediendeskriptor-Bytes sind in der folgenden Tabelle angegeben.
Mediendeskriptoren |
Typ |
Kapazität |
Größe und Typ |
F0H |
2,88 MB |
3,5", 2-seitig, 36 Sektoren pro Spur |
F0H |
1,44 MB |
3,5", 2-seitig, 18 Sektoren pro Spur |
F9H |
720 KB |
3,5", 2-seitig, 9 Sektoren pro Spur |
F9H |
1,2 MB |
5,25", 2-seitig, 15 Sektoren pro Spur |
FDH |
360 KB |
5,25", 2-seitig, 9 Sektoren pro Spur |
FFH |
320 KB |
5,25", 2-seitig, 8 Sektoren pro Spur |
FCH |
180 KB |
5,25", 1-seitig, 9 Sektoren pro Spur |
FEH |
160 KB |
5,25", 1-seitig, 8 Sektoren pro Spur |
F8H |
--------- |
Festplatte |
Anzahl der FAT-Sektoren: Muss berechnet werden. Die Berechnungsmethode für die FAT-Größe finden Sie in der FAT-Beschreibung im Kapitel.
Der DBR eines FAT32-Dateisystems ist in der folgenden Abbildung dargestellt:
Sektoren von FAT
Sektoren pro Spur (oder Sektoren pro Kopf): Sektoren pro Kopf ist die Anzahl der Sektoren, die unter einem Kopf zusammengefasst sind. Ebenso spiegelt Köpfe pro Zylinder die Anzahl der Zylinder pro Kopf wider. Wenn diese Partition eine CHS-Partition ist, müssen diese Werte mit denen übereinstimmen, die vom BIOS zurückgegeben werden. Wenn sie nicht übereinstimmen, müssen Sie davon ausgehen, dass die Festplatte falsch konfiguriert wurde und die Partition möglicherweise unbrauchbar ist.
Versteckte Sektoren: Wie bereits besprochen, handelt es sich hierbei um die Anzahl der Sektoren auf der physischen Festplatte vor dem Start des Volumes, vor dem eigentlichen Bootsektor. Sie wird während der Bootreihenfolge verwendet, um den absoluten Offset zum Stammverzeichnis und den Datenbereichen zu berechnen. Stellen Sie sich dies als die Anzahl der Sektoren zwischen dem Anfang dieser Partition und der Partitionstabelle selbst vor.
Dieses Feld sollte mit der „Anzahl der Sektoren vor der Partition“ in der Partitionstabelle übereinstimmen. Beachten Sie, dass es sich nicht unbedingt um die physische LBA-Adresse des ersten Sektors handeln muss, da sekundäre Partitionen vorhanden sein können.
Wenn die versteckten Sektoren nicht mit denen in der Partitionstabelle übereinstimmen, können Sie davon ausgehen, dass der Bootsektor beschädigt und die Partition unbrauchbar ist. Beachten Sie auch, dass das High Word in alten DOS-Versionen normalerweise Müll enthält.
Wenn Sie den Verdacht haben, dass ein Bootsektor beschädigt ist, können Sie mehrere der oben aufgeführten Felder überprüfen, um festzustellen, ob die dort aufgeführten Werte sinnvoll sind.
Beispielsweise beträgt die Anzahl der Bytes pro Sektor in den meisten Fällen 512. Sie können auch erwarten, im ausführbaren Codeabschnitt des Bootsektors Textzeichenfolgen zu sehen, die für das Betriebssystem geeignet sind, mit dem die Festplatte formatiert wurde.
Typische Textzeichenfolgen auf FAT-Datenträgern, die mit MS-DOS formatiert wurden, sind beispielsweise: „Ungültige Systemdiskette“, „Disketten-E/A-Fehler“, „Legen Sie die Diskette ein und drücken Sie dann eine beliebige Taste“, „Keine Systemdiskette oder Datenträgerfehler“, „Legen Sie sie ein und drücken Sie eine beliebige Taste, wenn Sie bereit sind“ und „Fehler beim Booten der Diskette“. Textzeichenfolgen auf FAT-Datenträgern, die mit Windows NT formatiert wurden, sind beispielsweise: „BOOT: NTLDR konnte nicht gefunden werden“, „E/A-Fehler beim Lesen der Diskette“ und „Bitte legen Sie eine andere Diskette ein“.
Beachten Sie jedoch, dass diese Liste nicht als vollständig anzusehen ist. Wenn Sie im Bootsektor andere Meldungen finden, bedeutet dies nicht unbedingt, dass ein Problem mit dem Bootsektor vorliegt. Verschiedene Versionen von MS-DOS und Windows NT weisen in ihren Bootsektoren manchmal leicht unterschiedliche Meldungszeichenfolgen auf.
Wenn Sie hingegen überhaupt keinen Text finden oder der Text eindeutig nichts mit MS-DOS oder Windows NT zu tun hat, sollten Sie die Möglichkeit in Betracht ziehen, dass Ihr Bootsektor möglicherweise mit einem Virus infiziert ist oder dass es zu einer anderen Form der Datenbeschädigung gekommen ist.
Um einen Bootsektor wiederherzustellen, der von einem Virus infiziert wurde, ist es normalerweise am besten, ein kommerzielles Antivirenprogramm zu verwenden. Viele Viren und Trojaner können viel mehr, als nur Daten in den Bootsektor zu schreiben. Daher ist eine manuelle Reparatur des Bootsektors nicht zu empfehlen, da der Virus oder Trojaner dadurch möglicherweise nicht vollständig entfernt wird und in einigen Fällen mehr Schaden als Nutzen angerichtet wird. Wir werden uns jedoch im Abschnitt „Programmierung“ dieses Buches mit DBR befassen.
Wenn Sie vermuten, dass der Bootsektor aus einem anderen Grund beschädigt wurde, kann eine Wiederherstellung des Bootsektorschadens unter Umständen ohne Neuformatierung des Laufwerks möglich sein, indem Sie die oben beschriebenen Felder manuell ändern. In diesem Buch werden wir versuchen, solche Probleme mithilfe von Programmiertechniken zur Wiederherstellung zu lösen.
Dateizuordnungstabelle (FAT)
Auf DBR folgen die File Allocation Tables. Die File Allocation Table (FAT) wurde 1977 eingeführt, um Daten auf Disketten für Microsoft Standalone Disk Basic zu speichern. Die FAT wurde mehrmals geändert, um den wachsenden Anforderungen gerecht zu werden. Sie wurde entwickelt, um die Anforderungen an ein schnelles und flexibles System zur Verwaltung von Daten auf Wechsel- und Festplatten zu erfüllen.
1996 wurde FAT32 mit Windows 95 OSR2 eingeführt. Wie bereits erwähnt, unterstützt Windows 98/ME FAT32 mit der Größe von Festplatten. Mittlerweile wird bei diesen Betriebssystemen häufig das FAT32-Dateisystem verwendet.
Das erste DOS-FAT-Dateisystem (DOS 1.x) verwendete ein 12-Bit-FAT-System, das noch heute für Disketten verwendet wird. DOS 2.x fügte Unterstützung für Festplatten hinzu und wechselte aufgrund größerer Datenträger zu 16-Bit-FAT-Einträgen.
Um 1987 herum wurde mit DOS 4.0 die Sektorbehandlung auf niedriger Ebene geändert und es wurden 32-Bit-Parameter verwendet, um das Problem der Unterstützung großer Festplatten zu überwinden, da wir bereits die Einschränkungen von Dateisystemen besprochen haben.
FAT speichert eine Karte der gesamten Oberfläche des Festplattenlaufwerks, sodass ersichtlich ist, welcher Bereich frei ist, welcher Bereich fehlerhaft ist, welcher Bereich von welcher Datei belegt ist usw. Wenn auf auf der Festplattenoberfläche gespeicherte Daten zugegriffen werden soll, konsultiert DOS FAT, um die Bereiche der Festplattenoberfläche zu ermitteln, die die Daten enthalten.
Der zu verwendende FAT-Typ wird vom FDISK-Programm während der Partitionierung der Festplatte festgelegt. Die eigentliche FAT wird jedoch vom FORMAT-Programm von DOS geschrieben.
Die FAT verfolgt nicht jeden einzelnen Sektor auf der Festplattenoberfläche, sondern verwaltet den Festplattenbereich in einer Gruppe von Sektoren, die als „Cluster“ oder „Zuordnungseinheit“ bezeichnet wird (siehe den zuvor im selben Kapitel besprochenen Cluster).
Ein Cluster ist die kleinste Einheit des Festplattenspeichers, die DOS einer Datei zuweist. Er besteht je nach Laufwerksgröße aus einem oder mehreren Sektoren. Die Clustergröße wird vom DOS-FORMAT-Programm während der Formatierung der Festplatte auf hoher Ebene festgelegt. (Siehe die Diskussion zur „Clustergröße“ weiter oben.)
Tatsächlich ist die FAT ein Index der Cluster des gesamten Datenträgers. Die FAT hat einen Eintrag für jeden Cluster. Die ersten beiden Einträge in einer FAT enthalten Informationen über die FAT. Der dritte und die folgenden Einträge in der FAT werden Clustern von Festplattenspeicher zugewiesen, beginnend mit dem ersten Cluster, der für die Verwendung durch Dateien verfügbar ist.
Da FAT ein so wichtiges Element ist, speichert DOS zwei Kopien von FAT: primäres FAT oder FAT1 und sekundäres FAT oder FAT2 (normalerweise gibt es zwei Kopien, viele neue Betriebssysteme erstellen jedoch mehr als zwei Kopien von FAT).
Jede FAT belegt zusammenhängende Sektoren auf der Festplatte. Wenn die zweite FAT unmittelbar auf die erste FAT folgt, führt dies nicht dazu, dass DOS die zweite FAT verwendet, um das Problem zu beheben. Stattdessen kopiert DOS die erste FAT beim Aktualisieren in die zweite FAT, wobei auch die zweite FAT beschädigt wird.
Diese Aktualisierung wird jedes Mal durchgeführt, wenn DOS feststellt, dass die 1. und 2. FAT nicht übereinstimmen. Im Falle einer Beschädigung der 1. FAT sollte man also sofort eine Reparatur durchführen, indem man eine Disk-Editor-Software verwendet und die 1. FAT mit der 2. FAT vergleicht. Dies sollte erfolgen, bevor DOS die beschädigte FAT in die zweite FAT kopiert.
Mit der Einführung von FAT32 sind sowohl die FAT-Einträge als auch die Sektornummerierung jetzt 32-Bit. Das bedeutet, dass es jetzt 4.294.967.296 verschiedene 32-Bit-Werte gibt, multipliziert mit 512 Bytes pro Sektor, was 2 Terabyte (2.199.023.255.552 Bytes) als maximal mögliche Festplattengröße unter FAT32 ergibt.
Die Größe des Verzeichniseintrags für jede Datei in FAT 32 beträgt 4 Bytes, um den Wert des Startclusters der Datei aufzunehmen, statt der 2 Bytes, die unter FAT16 erforderlich sind. Der größere Wert berücksichtigt die größere Anzahl möglicher Cluster.
Traditionell ist jeder Verzeichniseintrag ein 32-Byte-Datensatz, und das bleibt auch so. In der Mitte des Verzeichnisdatensatzes befinden sich 10 Bytes (Bytes 12 bis 21), die Microsoft für die eigene zukünftige Verwendung reserviert hat. Zwei dieser Bytes werden jetzt verwendet, um die zusätzlichen Bytes unterzubringen, die zum Festlegen des Startclusters unter FAT32 erforderlich sind.
Wie wir bereits besprochen haben, gibt es 12-Bit-, 16-Bit- und 32-Bit-Versionen von FAT. Während 32-Bit-FAT eine viel effizientere Speicherung ermöglicht, die bis zu 30 % effizienter sein kann, und die Verwendung größerer Festplatten ermöglicht.
Wenn das Dateisystem eines Betriebssystems von einem Programm aufgerufen wird, um den Inhalt einer Datei zu finden, wird der erste Clusterwert im Verzeichniseintrag für diese Datei gelesen und zum Suchen der FAT-Kette verwendet. Die FAT-Kette ist die Liste der Cluster, die Daten enthalten, die zu einer Datei gehören.
FAT32- Laufwerkslayout |
Versatz |
Beschreibung |
Beginn der Partitionierung |
Bootsektor |
Beginn der Partition + Anzahl reservierter Sektoren |
FAT-Tabellen |
Beginn der Partition + Nummer des reservierten Sektors + (Anzahl der Sektoren pro FAT * 2)
[Vorausgesetzt, die FAT-Spiegelung ist aktiviert, das trifft fast immer zu] |
Stammverzeichnis |
Beginn der Partition + Anzahl der reservierten Sektoren + (Anzahl der Sektoren pro FAT * 2) + Anzahl der Sektoren im Stammverzeichnis |
Datenbereich |
FAT-Einträge können Werte enthalten, die Folgendes angeben:
- Der nächste Cluster in einer FAT-Kette für eine bestimmte Datei
- Die freien Cluster, d. h. die Cluster, die von keiner Datei verwendet werden
- Die Informationen zu fehlerhaften Sektoren, d. h. der Cluster enthält einen oder mehrere Sektoren, die physisch beschädigt sind und nicht verwendet werden sollten.
- Der letzte Cluster einer Datei
Einträge der FAT-Tabelle |
Zahl (Hex.) |
Beschreibung |
0 |
Kostenloser Cluster |
???? |
Cluster wird verwendet, nächster Cluster in der Kette |
FF0-FF6 / FFF0-FFF6 |
Cluster ist reserviert |
FF7 /FFF7 |
Cluster enthält fehlerhafte Sektoren |
FF8-FFF / FFF8-FFFF |
Ende der Datei |
Jeder FAT-Eintrag stellt eine Clusteradresse dar und enthält einen Zeiger auf die nächste Clusteradresse (FAT-Eintrag) für die Datei. Der letzte FAT-Eintrag für eine Datei enthält den endgültigen Clusterwert anstelle eines Zeigers. Die ersten beiden Einträge in einer FAT enthalten Informationen zur FAT. Diese Bytes der FAT enthalten ein Mediendeskriptor-Byte. Dieses Byte kann verwendet werden, um den Typ des Datenträgermediums zu finden, zu dem dieser FAT-Eintrag gehört.
Der dritte und alle weiteren Einträge in der FAT werden Clustern von Festplattenspeicher zugewiesen, beginnend mit dem ersten Cluster, der für Dateien verfügbar ist. Ein FAT-Eintrag kann je nach den Informationen, die er übermitteln soll, jeden der in der obigen Tabelle angegebenen Werte haben.
000H in 12–Bit FAT oder 0000H in 16–Bit FAT gibt an, dass der Cluster, der diesem FAT-Speicherort entspricht, nicht zugeordnet oder leer ist. Jeder Wert zwischen FF8H und FFFH in 12–Bit FAT oder FFF8H und FFFFH in 16–Bit FAT gibt an, dass dieser Cluster der letzte Cluster in einer Kette von Clustern einer Datei ist.
Werte von FF0H bis FF7H in 12-Bit-FAT zeigen reservierte Cluster an. Ein FF7H in einem 12-Bit-FAT oder FFF7H in einem 16-Bit-FAT zeigt an, dass der Cluster, der dem Speicherort des FAT entspricht, ein fehlerhafter Cluster ist, d. h. dies ist im Grunde ein Cluster, der fehlerhafte Sektoren enthält. Dieser Cluster wird nicht zur Datenspeicherung verwendet.
Jeder andere Wert in der FAT-Tabelle ist ein Zeiger auf den nächsten Cluster in der Dateizuordnungskette.
Wie Windows das unsachgemäße Herunterfahren erkennt
Es kommt sehr häufig vor und ich hoffe, dass es Ihnen bei der Verwendung von Windows schon oft aufgefallen ist: Wenn Ihr Computer aus irgendeinem Grund, beispielsweise wegen eines Stromausfalls, einer beschädigten Software, eines versehentlichen Herunterfahrens usw., nicht ordnungsgemäß heruntergefahren wird, wird beim anschließenden Neustart des Computers während des Startvorgangs die Meldung „Unsachgemäßes Herunterfahren“ auf dem Bildschirm angezeigt und das Betriebssystem durchsucht die Festplatte nach Fehlern.
Die nächsten beiden Abbildungen zeigen die 256 Bytes vom Anfang einer 32-Bit-FAT, wir benötigen zur Erläuterung jedoch nur die anfänglichen 8 Bytes.
Tatsächlich wird das 8. Byte (oder der Offset 7H) von FAT von 0FH oder FFH zu 07H oder F7H, wenn sich das Windows-Betriebssystem selbst in den Speicher geladen hat, d. h. wenn Windows gestartet wurde.
Microsoft verwendet das Byte 0FH nur für das Volume, das das laufende Betriebssystem enthält, und das Byte FFH für alle anderen Volumes, auf die es zugreift.
Sobald Windows mit dem Booten beginnt, wird das 8. Byte in 07H oder F7H geändert und nur dann auf 0FH oder FFH zurückgesetzt, wenn Windows ordnungsgemäß heruntergefahren wird.
Wenn ein Stromausfall auftritt, der Netzschalter des Computers versehentlich ausgeschaltet wird oder das System aufgrund eines Softwareproblems manuell neu gestartet wird, bleibt dieses Byte als 07H oder F7H bestehen und informiert das Windows-Betriebssystem beim nächsten Booten darüber, dass es zu einem nicht ordnungsgemäßen Herunterfahren gekommen ist. Anschließend verwendet Windows sein Festplattenscanprogramm (Scandisk), um die Festplatte auf Fehler zu überprüfen.

Stammverzeichnis
Nach der letzten FAT folgt das Stammverzeichnis. Das Stammverzeichnis ist wie ein Inhaltsverzeichnis für die auf der Festplatte gespeicherten Informationen. Der Speicherort des Stammverzeichnisses lässt sich leicht ermitteln, indem man die Werte aus dem Startdatensatz addiert, da es nach den FATs positioniert ist.
Der Verzeichnisbereich enthält Informationen über den Dateinamen, Datum und Uhrzeit der Dateierstellung, Dateiattribute, Dateigröße und Startcluster der jeweiligen Datei. Jeder Verzeichniseintrag, der diese Informationen über eine Datei enthält, ist eine 32 Byte lange Information.
Das Stammverzeichnis enthält Informationen zu den Dateien und Verzeichnissen, die vom Stammverzeichnis abzweigen. Alle weiteren Verzeichnisse werden selbst als Dateien gespeichert, im gleichen Format wie das Stammverzeichnis. Früher hatte das Stammverzeichnis eine feste Größe und befand sich an einer festen Position auf der Festplatte, aber jetzt kann es beliebig wachsen, da es als Datei behandelt wird.
Die Anzahl der Dateien, die im Stammverzeichnis gespeichert werden können, hängt vom verwendeten FAT-Typ ab. Beispielsweise ist eine 3½-Zoll-Diskette mit 1,44 MB und 12-Bit-FAT auf 224 Einträge beschränkt. Wenn Sie versuchen, die 225. Datei zu speichern, zeigt DOS die Meldung „Fehler bei der Dateierstellung“ an. Bei Verwendung eines 16-Bit-FAT-Typs können im Stammverzeichnis insgesamt 512 Einträge gespeichert werden. Jedes Hauptverzeichnis auf einer Diskette oder Festplatte fungiert auch als Stammverzeichniseintrag.
In der folgenden Tabelle sind die Grenzwerte für Root-Einträge für verschiedene Medien und FAT aufgeführt:
Beschreibung des Mediums und Dateisystems |
Maximale Anzahl an Stammverzeichniseinträgen |
Einseitiges 5¼ Zoll 180K FDD |
64 |
Doppelseitiges 5¼ Zoll 320K FDD |
64 |
Doppelseitiger 5¼ Zoll 360K FDD |
112 |
Doppelseitiges 3½ Zoll 720K FDD |
112 |
Doppelseitiges 5¼-Zoll-FDD mit 1,2 Megabyte |
224 |
Doppelseitiges 3½-Zoll-FDD mit 1,44 Megabyte |
224 |
Doppelseitige 3½-Zoll-Disketten im 1,68-Megabyte-DMF-Format (Aus diesem Grund hat Microsoft CAB-Dateien erstellt!) |
16 |
Doppelseitiges 3½-Zoll-FDD mit 2,88 Megabyte |
240 |
Festplatten (FAT12 und FAT16) |
512 |
Festplatten mit FAT 32 (da es das Routenverzeichnis als Datei behandelt) |
65.536 |
Dies bedeutet jedoch nicht, dass man bei 16–Bit FAT auf die Speicherung von nur 512 Dateien auf der Festplatte beschränkt ist. Man kann Unterverzeichnisse verwenden, um eine beliebige Anzahl von Dateien zu speichern, wobei die einzige Einschränkung die Größe der Festplatte ist.
Denken Sie daran, dass die Datenträgerbezeichnung für eine Diskette normalerweise im Bootsektor gespeichert ist, die Datenträgerbezeichnung für eine Festplatte jedoch als Stammverzeichniseintrag gespeichert ist und der im Bootsektor reservierte Speicherplatz mit Leerzeichen leer gelassen wird. Der DIR-Befehl von DOS gibt den Eintrag im Verzeichnis zurück, falls vorhanden, oder den Eintrag im Bootsektor, falls nicht.
Verzeichniseinträge enthalten den Eintrag in die Clusterkette und den Dateinamen. Die wichtigsten Verzeichniseinträge sind daher die des Stammverzeichnisses, da sie Clusterindizes enthalten, die auf alle Unterverzeichnisse verweisen.
Alle Verzeichnisse enthalten zwei Einträge, „.“ für das aktuelle Verzeichnis (dieses Unterverzeichnis) und „..“ für das übergeordnete Verzeichnis (übergeordnetes Verzeichnis dieses Unterverzeichnisses). Wir können diese Einträge leicht verfolgen, da sie immer am Anfang eines Clusters positioniert sind, wenn der Cluster ein Verzeichnis enthält. Die folgende Tabelle zeigt das Format eines Verzeichniseintrags im Stammverzeichnis. Die folgende Tabelle zeigt, wie die 32 Bytes des Verzeichniseintrags einer Datei im Stammverzeichnis aufgeteilt werden, um die verschiedenen Informationen darüber zu speichern:
Versatz |
Größe |
Beschreibung |
00 Uhr |
8 Bytes |
Dateiname
(siehe auch die nächste Tabelle zur speziellen Bedeutung des ersten Zeichens des Dateinamens) |
08 Uhr |
3 Bytes |
Verlängerung |
0BH |
1 Byte |
Dateiattribute (siehe Tabelle der Dateiattribute) |
0CH |
10 Bytes |
Reserviert |
16 Uhr |
2 Bytes |
Erstellungszeitpunkt oder Zeitpunkt der letzten Aktualisierung (siehe Tabelle „Datum-Uhrzeit-Format“) |
18 Uhr |
2 Bytes |
Erstellungsdatum oder letzte Aktualisierungsdatum (siehe Tabelle „Datum-Uhrzeit-Format“) |
1AH |
2 Bytes |
Start- oder erster Dateicluster (Der Wert 0000H wird in Einträgen des übergeordneten Verzeichnisses (' .. ')
verwendet, um anzugeben, dass das übergeordnete Verzeichnis das Stammverzeichnis ist) |
1 Kanal |
4 Bytes |
Dateigröße in Bytes. |
Der Dateiname enthält den Namen in Großbuchstaben und wenn die Größe des Dateinamens kleiner als 8 Zeichen ist, werden die Leerzeichen mit Leerzeichen der ASCII-Nummer 32 aufgefüllt. Das Erweiterungsfeld enthält die Dateierweiterung in Großbuchstaben.
Wenn der Dateiname länger als 8 Zeichen ist, erstellt Windows aus einem langen Dateinamen einen kurzen, indem es ihn auf sechs Großbuchstaben kürzt und an das Ende des Basisdateinamens „~1“ anfügt.
Wenn es bereits einen anderen Dateinamen mit denselben ersten sechs Zeichen gibt, wird die Nummer erhöht. Die Erweiterung bleibt gleich und alle Zeichen, die in früheren Versionen von Windows und DOS ungültig waren, werden durch einen Unterstrich ersetzt.
Lange Dateinamen werden in speziell formatierten 32-Byte-Verzeichniseinträgen mit langen Dateinamen (LFN) gespeichert, die mit Attributbytes auf 0FH markiert sind. Für eine bestimmte Datei oder ein bestimmtes Unterverzeichnis steht eine Gruppe von einem oder mehreren Verzeichniseinträgen mit langen Dateinamen unmittelbar vor dem einzelnen 8.3-Verzeichniseintrag auf der Festplatte.
Jeder LFN-Verzeichniseintrag enthält bis zu 13 Zeichen des langen Dateinamens, und das Betriebssystem fügt so viele davon aneinander, wie nötig sind, um einen vollständigen langen Dateinamen zu bilden.
Dies ist der Grund, warum lange Dateinamen die maximal mögliche Anzahl von Stammverzeichniseinträgen in einem Dateisystem verringern. Wie Windows lange Dateinamen unterstützt, besprechen wir später in diesem Kapitel ausführlich.
Das erste Byte des Dateinamens kann auch einige wichtige Informationen über die Datei enthalten. Die von diesem Byte bereitgestellten Informationen können eine der in der folgenden Tabelle angegebenen sein:
Erstes Zeichen des Dateinamens |
Wert |
Bedeutung |
00 Uhr |
Zeigt an, dass dieser Verzeichniseintrag nicht verwendet wird. |
05 Uhr |
Zeigt an, dass das erste Zeichen des Dateinamens das Zeichen E5H ist. Tatsächlich wurde die Datei jedoch nicht gelöscht. (Siehe die Bedeutung von E5H.) |
E5H |
Die Datei wurde gelöscht und dieser Verzeichniseintrag ist der Verzeichniseintrag einer gelöschten Datei. Der zuvor von dieser Datei belegte Datenbereich ist jetzt für die Zuweisung einer anderen neuen Datei frei. |
2EH |
Dies ist ein Unterverzeichnis. Das Clusternummernfeld dieses Eintrags enthält die Clusternummer des Verzeichnisses. |
2EH 2EH |
Zwei 2EH in einem Verzeichniseintrag geben den übergeordneten Verzeichniseintrag eines Unterverzeichnisses an. Die Clusternummer dieses Eintrags enthält die Clusternummer des übergeordneten Verzeichnisses dieses Verzeichnisses. Die Clusternummer ist Null 0000H, wenn das übergeordnete Verzeichnis das Stammverzeichnis ist. |
Bei den Attributen handelt es sich um ein binär codiertes 8-Bit-Feld. Die folgende Tabelle gibt Auskunft über den Status der Attributflagge für die angegebene Datei:
Attributbits |
Attribut |
Bisschen |
Binär |
Verhexen |
Flag „Nur lesen“-Datei |
0 |
.......? |
01 Uhr |
Flag für versteckte Dateien |
1 |
......?. |
02 Uhr |
Systemdatei-Flag |
2 |
.....?.. |
04 Uhr |
Datenträgerbezeichnungs-Flag
(zeigt an, dass es sich bei dem Eintrag um eine Datenträgerbezeichnung handelt) |
3 |
....?... |
08 Uhr |
Unterverzeichnis
(im gleichen Format wie das Verzeichnis) |
4 |
...?.... |
10 Stunden |
Archivbit
(Datei seit der letzten Sicherung geändert) |
5 |
..?……. |
20 Stunden |
Reserviert (enthält 0) |
6 |
.0...... |
- |
Reserviert (enthält 0) |
7 |
0....... |
- |
Eine Datei kann mehrere Attribute haben. Eine einzelne Datei kann beispielsweise sowohl eine schreibgeschützte als auch eine versteckte Datei sein, oder eine einzelne Datei kann beide Attribute haben, also die Systemdatei und die versteckte Datei. (Die Kodierung von Verzeichniseinträgen finden Sie im nächsten Beispiel.)
Zeit und Datum sind speziell kodierte Felder mit 32 Bit (16 Bit für die Zeit und 16 Bit für das Datum). Die Aufteilung dieser Bits zur Zusammenstellung der Erstellungszeit oder letzten Aktualisierung und des Erstellungs- oder letzten Aktualisierungsdatums einer Datei ist in der folgenden Tabelle angegeben:
Der Eintrag für die Erstellungszeit oder letzte Aktualisierung der Datei, also das 16. und 17. Byte im Verzeichniseintrag, hat das in der obigen Tabelle angegebene Format. Die Kodierung ist wie folgt:
- H ist die Binärzahl für die Stunde, die zwischen 0 und 23 liegen kann.
- M ist eine Binärzahl für Minute, die zwischen 0 und 59 liegen kann
- S ist eine Binärzahl für Sekunden in 2-Sekunden-Schritten
- Der Eintrag für Erstellungsdatum oder letztes Update der Datei, also das 18. und
- 19. Byte im Verzeichniseintrag, hat folgendes Format:
- Y ist eine Binärzahl zwischen 0 und 127 oder das Jahr 1980 bis 2107
- M ist die Binärzahl für Monat, diese kann zwischen 1 und 12 liegen
- D ist eine Binärzahl für das Datum, diese kann zwischen 1 und 31 liegen
Dieser Verzeichniseintrag ist basierend auf dem ersten Clusterwert mit dem FAT-Eintrag verknüpft. Sobald DOS den Startclusterwert einer beliebigen Datei aus dem Verzeichnis hat, kann DOS die vollständige Datei mithilfe der FAT ermitteln. Der Eintragscluster in der Kette ist der erste Cluster, aus dem die Datei besteht. Wenn das Verzeichnisflag der Attribute gesetzt ist, verweist dieses Feld auf einen neuen Verzeichniseintrag.
Der Eintrag für die Dateigröße beträgt 4 Bytes. Damit können wir berechnen, dass FAT32 die maximale Dateigröße von bis zu 4.294.967.295 Bytes unterstützt, was etwa 4 GiB entspricht. Die 4 Bytes haben 32 Bits und die maximal mögliche Dateigröße, die aus einer 32-Bit-Binärdatei besteht, könnte sein:
= 11111111 11111111 11111111 11111111 (B) Bytes
= 4.294.967.295 (D) Bytes
~ 4 GiB
Somit unterstützt FAT32 eine maximale Dateigröße von bis zu 4 GiB.
Stammverzeichniseintrag
Die Dateigröße und der erste Dateicluster können bei der Datenwiederherstellung bei beschädigten Dateien wertvolle Informationen liefern, da wir berechnen können, aus wie vielen Clustern die Datei bestehen soll.
Die obige Abbildung zeigt den Stammverzeichniseintrag für sieben verschiedene Dateien. Die Kodierung dieser Einträge ist in der folgenden Tabelle angegeben:
Langer Dateiname (LFN)
Wie wir bereits zuvor in der Diskussion zum Stammverzeichnis besprochen haben, hatte das Stammverzeichnis früher eine feste Größe und befand sich an einer festen Position auf der Festplatte. Jetzt kann es jedoch beliebig wachsen, da es wie eine Datei behandelt wird.
Dies ist bei langen Dateinamen sehr wichtig, da jeder lange Dateiname mehrere Verzeichniseinträge verwendet. Das Hinzufügen von Unterstützung für lange Dateinamen zu einem Betriebssystem, das 8.3-Dateinamen verwendet, ist nicht so einfach wie das Erweitern von Verzeichniseinträgen auf mehr als 11 Zeichen.
Wenn dieses neue Betriebssystem Dateinamen mit 255 Zeichen zurückgibt, würden viele ältere Anwendungen, die nicht mehr als 11 Zeichen erwarten, abstürzen, da ein Programm Speicher reservieren muss, um die gelesenen Dateinamen zu speichern. Wenn es 16 Bytes für einen Dateinamen reserviert und das Betriebssystem beispielsweise 32 Zeichen in diesen Bereich kopiert, werden andere Daten überschrieben. Eine sichere Methode, eine Anwendung zum Absturz zu bringen, besteht darin, zufällige Daten in ihren Datenbereich zu kopieren.
Um dieses Problem zu überwinden, wurde in Windows 95 eine clevere Lösung gefunden, die lange Dateinamen unterstützt und gleichzeitig die Kompatibilität mit früheren Versionen von DOS- und Windows-Anwendungen aufrechterhält.
Wenn die meisten Anwendungen (mit Ausnahme einfacher Festplattendienstprogramme wie Norton Disk Doctor) das System nach Datei- und Unterverzeichnisnamen abfragen, geschieht dies nicht durch das direkte Lesen der Verzeichniseinträge von der Festplatte, sondern durch die Verwendung im Betriebssystem integrierter Aufzählungsfunktionen.
Wie wir wissen, ist ein Verzeichniseintrag mit einer Kombination aus schreibgeschützten, versteckten, System- und Datenträgerbezeichnungsattributbits gekennzeichnet. Wenn das Attributbyte des Verzeichniseintrags den Wert 0FH enthält, überspringen die in allen vorhandenen DOS-Versionen und allen Windows-Versionen vor Windows 95 integrierten Aufzählungsfunktionen diesen Verzeichniseintrag wahrscheinlich, als wäre er nicht vorhanden.
Die Lösung bestand damals darin, für jede Datei und jedes Unterverzeichnis zwei Namen zu speichern: einen Kurznamen, der für alle Anwendungen sichtbar ist, und einen Langnamen, der nur für Anwendungen unter Windows 95 (und höher) und für Anwendungen sichtbar ist, die neu geschrieben wurden, um Unterstützung für lange Dateinamen hinzuzufügen. Kurze Dateinamen werden in 8.3-Formaten in herkömmlichen 32-Byte-Verzeichniseinträgen gespeichert.
Wir haben bereits besprochen, dass Windows aus einem langen Dateinamen einen kurzen erstellt, indem es ihn auf sechs Großbuchstaben kürzt und an das Ende des Basisdateinamens „~1“ anfügt.
Wenn es bereits einen anderen Dateinamen mit denselben ersten sechs Zeichen gibt, wird die Nummer erhöht. Die Erweiterung bleibt gleich und alle Zeichen, die in früheren Versionen von Windows und DOS ungültig waren, werden durch einen Unterstrich ersetzt.
Die langen Dateinamen werden in speziell formatierten 32-Byte-Verzeichniseinträgen mit langen Dateinamen (LFN) gespeichert, die mit Attributbytes auf 0FH markiert sind. Für eine bestimmte Datei oder ein bestimmtes Unterverzeichnis steht eine Gruppe von einem oder mehreren Verzeichniseinträgen mit langen Dateinamen unmittelbar vor dem einzelnen 8.3-Verzeichniseintrag auf der Festplatte.
Jeder Verzeichniseintrag mit langem Dateinamen enthält bis zu 13 Zeichen des langen Dateinamens, und das Betriebssystem fügt so viele Zeichen wie nötig aneinander, um einen vollständigen langen Dateinamen zu bilden.
Für einen Verzeichniseintrag mit langem Dateinamen werden Dateinamen im Unicode-Format gespeichert, das 2 Bytes pro Zeichen erfordert, im Gegensatz zu 1 Byte ASCII. Dateinamenzeichen werden auf drei separate Felder verteilt:
- Die ersten 10 Bytes (fünf Zeichen) lang,
- Die zweiten 12 Bytes (sechs Zeichen),
- Die dritten 4 Bytes (zwei Zeichen).
- Die untersten fünf Bits des ersten Bytes des Verzeichniseintrags enthalten eine Sequenznummer, die die Position des Verzeichniseintrags relativ zu anderen identifiziert
- Verzeichniseinträge mit langem Dateinamen, die mit derselben Datei verknüpft sind.
Wenn für einen langen Dateinamen drei LFN-Verzeichniseinträge erforderlich sind, ist die Sequenznummer des ersten Eintrags 1, die des zweiten 2 und die Sequenznummer des dritten 3. Bit 6 des ersten Bytes des dritten Eintrags wird auf 1 gesetzt, um anzuzeigen, dass es sich um den letzten Eintrag in der Sequenz handelt.
Das Attributfeld erscheint in LFN-Verzeichniseinträgen an derselben Stelle wie in 8.3-Verzeichniseinträgen, da das Dateisystem erst nach der Prüfung des Attributbytes weiß, mit welcher Art von Verzeichniseintrag es sich befasst. Das Feld „Startclusternummer“ erscheint ebenfalls an derselben Stelle, aber in LFN-Verzeichniseinträgen ist sein Wert immer 0. Das Feld „Typindikator“ enthält in jedem langen Dateinamen ebenfalls 0.
Ein Problem mit langen Dateinamen ist, dass sie mehr Speicherplatz beanspruchen als kurze. Das ist kein großes Problem, wenn lange Namen in Unterverzeichnissen gespeichert werden, denn solange Speicherplatz verfügbar ist, können Unterverzeichnisse wachsen, um zusätzliche Verzeichniseinträge aufzunehmen. Die maximale Anzahl der im Stammverzeichnis verfügbaren Verzeichniseinträge ist jedoch festgelegt, und lange Dateinamen verschwenden Speicherplatz im Stammverzeichnis, dessen Größe begrenzt ist.
Wenn beispielsweise das Stammverzeichnis einer Festplatte höchstens 512 Verzeichniseinträge enthält, könnten Sie für einen 128-stelligen Namen 11 Einträge (10 für den Langnamen und 1 für den Kurznamen) nur 46 Dateien und Unterverzeichnisse im Stammverzeichnis erstellen, wenn jedem ein 128-stelliger Name zugewiesen würde.
Bei FAT32 besteht dieses Problem auch nicht, da das Stammverzeichnis unter FAT32 ebenfalls wachsen kann, weil es im FAT32-System wie eine Datei behandelt wird, deren Größe zunehmen kann.
Datenbereich (oder Dateibereich)
Nach dem Stammverzeichnis beginnt der Datenbereich (oder Dateibereich). Man kann eher sagen, dass der Rest des Datenträgers nach dem Stammverzeichnis der Datenbereich ist.
Der Datenbereich enthält die eigentlichen Daten, die auf der Plattenoberfläche gespeichert sind. DOS verwendet Cluster Nummer 2 für den ersten Sektor des Datenbereichs. Daher sollten wir bei verschiedenen Berechnungen bedenken, dass die Clusternummer bei 2 beginnen sollte.
Wenn wir eine Festplatte formatieren, zerstört oder überschreibt der FORMAT-Befehl von DOS die Daten im Datenbereich nicht. Der FORMAT-Befehl entfernt nur den Verzeichniseintrag und die FAT-Einträge und berührt den eigentlichen Datenbereich nicht.
Dadurch ist die Wiederherstellung versehentlich formatierter Festplatten möglich, was bei versehentlich formatierten Disketten nicht immer möglich ist. Wie bei der vollständigen Formatierung durch Windows wird der Datenbereich der Diskette mit F6H-Zeichen gefüllt und alle Informationen werden überschrieben.
DOS verwendet einen 16-Bit/32-Bit-Zeiger namens „Last Cluster Used“ (LCU)-Zeiger, um die zuletzt verwendete Clusternummer zu speichern. Anfangs ist dieser Zeigerwert Null. Wenn jedoch Informationen in einen bestimmten Cluster geschrieben werden, wird diese Clusternummer im LCU-Zeiger gespeichert.
Danach sucht DOS jedes Mal, wenn neue Informationen geschrieben werden sollen, ab der LCU-Nummer nach einem freien Cluster. Dadurch bleiben die auf die Platte geschriebenen neuen Daten zusammenhängend, da sie in den neuen, unbenutzten Bereich geschrieben werden.
Jetzt wäre das Verstehen der Daten im Falle einer versehentlichen Löschung viel einfacher, da sich die Datei in einem zusammenhängenden Bereich auf der Festplatte befindet. Sobald das Ende der Festplatte erreicht ist oder das System zurückgesetzt wird, wird der LCU-Zeigerwert auf Null zurückgesetzt.
Aber das Problem besteht hier nicht. Es ist praktisch nicht möglich, dass Sie nur neue Dateien auf Ihrer Festplatte erstellen und nie eine der zuvor gespeicherten Dateien löschen oder ändern. Die Verwendung von nur LCU ist problematisch, wenn Sie viele Dateien erstellen und löschen, da dies die neuen Daten dazu zwingt, immer weiter in die inneren Spuren der Festplatte zu gelangen.
Wenn also eine auf der Festplatte gespeicherte Datei verschoben oder gelöscht wird, werden die von der Datei belegten Cluster im Datenbereich nun als nicht zugeordnete Cluster im Datenbereich verfügbar und können mit neuen Daten beschrieben werden. Auf diese Weise muss das Betriebssystem nicht alle Daten auf die inneren Spuren der Festplatte verschieben.
Durch häufiges Löschen und Erstellen von Dateien werden jedoch die Daten auf der Festplatte fragmentiert, was wiederum zur Fragmentierung der Daten führt.
Fragmentierte und defragmentierte Daten
Wir haben bereits besprochen, dass jede Datei auf der Festplatte als verknüpfte Liste von Clustern gespeichert wird, wodurch die in einer Datei enthaltenen Daten überall auf der Festplatte lokalisiert werden können. Wenn Sie eine 10 MB große Datei auf einer Festplatte mit 4.096-Byte-Clustern gespeichert haben, werden 2.560 Cluster verwendet. Diese Cluster können sich auf verschiedenen Spuren, verschiedenen Platten der Festplatte befinden, tatsächlich können sie überall sein.
Obwohl eine Datei über die ganze Festplatte verteilt sein kann, ist dies bei weitem nicht die bevorzugte Situation. Der Grund dafür ist die unerwünscht langsame Leistung. Festplatten sind relativ langsame Geräte, hauptsächlich weil sie mechanische Teile enthalten. Jedes Mal, wenn die Festplatte die Köpfe auf eine andere Spur bewegen muss, dauert dies Tausende und Abertausende von Prozessorzyklen.
Daher möchten wir die Verteilung der einzelnen Dateien auf der Festplatte so gering wie möglich halten. Im Idealfall wäre jede Datei vollständig zusammenhängend. Das bedeutet, dass die einzelnen Cluster, die sie verwendet, nacheinander auf der Festplatte angeordnet wären. Dadurch könnte die gesamte Datei bei Bedarf gelesen werden, ohne dass die Festplatte viel mechanische Bewegung ausführen müsste.
Tatsächlich sind am Anfang alle oder die meisten Dateien des Dateisystems zusammenhängend, doch durch das Erstellen und Löschen von Dateien werden die Daten auf der Festplatte im Laufe der Zeit immer stärker fragmentiert.
Betrachten wir ein einfaches Beispiel, um die Fragmentierung zu verstehen. Die folgende Tabelle stellt die Nutzung der 12 Cluster dar. Anfangs ist die Tabelle leer:
Cluster 1 |
Cluster 2 |
Cluster 3 |
Cluster 4 |
Cluster 5 |
Cluster 6 |
Cluster 7 |
Cluster 8 |
Cluster 9 |
Cluster 10 |
Cluster 11 |
Cluster 12 |
Nehmen wir nun an, wir erstellen auf dieser Festplatte vier Dateien, nämlich Datei A, B, C und D. Datei A nimmt 1 Cluster ein, Datei B 4, Datei C 2 und Datei D 3. Wir speichern sie im frei verfügbaren Speicherplatz und beginnen alle zusammenhängend, wie in der nächsten Abbildung dargestellt:
Nach einiger Zeit löschen wir die Datei C. Dadurch sind die beiden Cluster, die von der Datei C belegt waren, nun frei bzw. nicht zugeordnet. Die Festplatte sieht dann wie in der folgenden Abbildung aus:
Nun erstellen wir eine neue Datei E, die 3 Cluster benötigt. Da es auf der Festplatte jedoch keine zusammenhängenden Blöcke mehr gibt, die 3 Cluster lang sind, müssen wir E in zwei Fragmente aufteilen und dabei einen Teil des Speicherplatzes verwenden, der zuvor von C belegt wurde. Nun sieht unsere Festplatte wie in der folgenden Abbildung aus:
A |
B |
B |
B |
B |
UND |
UND |
D |
D |
D |
UND |
|
Nach einer gewissen Zeitspanne löschen wir die Dateien A und E und erstellen die Datei F, die 5 Cluster einnimmt. Die Festplatte sieht nun wie in der folgenden Abbildung aus:
Jetzt sehen wir, dass die Datei F letztendlich in drei Fragmente zerlegt wird. Diese Art von Daten auf der Festplatte werden als fragmentierte Daten bezeichnet. Das oben genannte Beispiel ist ein sehr vereinfachtes Beispiel für Fragmentierung, da die realen Festplatten Tausende von Dateien und Tausende von Clustern enthalten, sodass das Problem dort noch größer ist. Dies gibt Ihnen jedoch eine allgemeine Vorstellung davon, was passiert.
Ein Defragmentierungsprogramm (wie das DEFRAG-Programm von Microsoft oder Nortons SpeedDisk) ordnet die Festplatte neu an, um die Dateien wieder in zusammenhängende Form zu bringen. Nach dem Ausführen des Festplattendefragmentierungsprogramms sehen die defragmentierten Daten auf der Festplatte, über die wir gesprochen haben, wie in der folgenden Abbildung aus:
Die fragmentierten und defragmentierten Daten sind bei der Datenwiederherstellung in vielen Fällen von großer Bedeutung.
Nehmen wir an, wir haben zwei abgestürzte Festplatten zur Datenwiederherstellung, eine hat fragmentierte Daten und eine wurde kürzlich defragmentiert. Und Sie müssen die Datenwiederherstellung durchführen, indem Sie die Daten von der Oberfläche beider Festplatten sammeln, da die FAT- und Root-Informationen der Dateien beschädigt sind. In solchen Fällen ist der Prozentsatz der Wiederherstellung proportional zur Defragmentierung der Daten auf der Festplatte.
Natürlich ist die Datenwiederherstellung von einer defragmentierten Festplatte einfach und die Prozentzahl der wiederhergestellten Daten hoch. Andererseits ist die Datenwiederherstellung von einer fragmentierten Festplatte schwierig und zeitaufwändig und auch die Prozentzahl der wiederhergestellten Daten enttäuschend.
Identifizieren der Ursache für Datenbeschädigung
Es gibt einige spezifische Schritte, die uns, wenn wir sie in der richtigen Reihenfolge befolgen, dabei helfen können, den beschädigten Bereich zu finden. Diese Schritte werden im Wiederherstellungsverfahren wie folgt beschrieben:
Booten Sie das System mit einer bootfähigen Diskette
Booten Sie Ihr System mit einer bootfähigen Diskette oder CD des von Ihnen verwendeten Betriebssystems. Versuchen Sie, die logischen Laufwerke C: oder D: oder was auch immer zu lesen. Wenn auf das/die Laufwerk(e) zugegriffen werden kann, kopieren Sie einfach alle Daten vom Laufwerk. Jetzt können Sie mit weniger Aufwand herausfinden, warum die Festplatte nicht richtig bootet.
Überprüfen der MBR-Informationen
Die ersten und wichtigsten Daten auf der Festplatte sind der MBR und die darin enthaltene Tabelle, die Partitionstabelle. Das kleine Disk-Bearbeitungstool namens „TTEDITOR.EXE“ befindet sich auf der diesem Buch beiliegenden Disk. Alternativ können Sie jedes andere Programm zur Analyse der Festplatte verwenden.
Diskedit ist das am besten geeignete Programm, um die Festplatte zur Datenwiederherstellung zu analysieren. Sie können das Programm wählen, das Ihnen am einfachsten zu bedienen ist. Versuchen Sie, MBR und insbesondere dessen Partitionstabelle zu lesen.
Wie Sie in der Beschreibung des MBR in diesem Kapitel gesehen haben, gibt es in der zweiten Hälfte des MBR lesbaren Text, der als Fehlermeldung angezeigt wird, wenn etwas nicht stimmt. Diese Textmeldungen werden etwa wie folgt angezeigt:
Wenn diese Fehlermeldungen nicht verfügbar sind, deutet dies auf eine Beschädigung des MBR hin. Es kann auch eine illegale Meldung wie „Ihr System wurde von … gehackt“ oder eine andere unerwartete Meldung erscheinen. Dies weist darauf hin, dass mit dem MBR etwas ernsthaft nicht stimmt, und höchstwahrscheinlich liegt dies an einer Virusinfektion.
Überprüfen Sie nun die Partitionstabelle des MBR nach den ersten 446 Bytes. Wenn die Partitionstabelle leer ist, wird beim Booten keine Fehlermeldung angezeigt. DOS ignoriert ein nicht partitioniertes Laufwerk. Wenn sich im Laufwerk A: keine bootfähige Diskette befindet, fordert das System Sie auf, eine bootfähige Diskette in Laufwerk A: einzulegen.
Wichtig ist, dass die Partitionstabelle auf einem Laufwerk, das zuvor funktioniert hat, nicht leer sein darf, sodass sie gelöscht wurde. Wenn die Partitionstabelle leer ist, stellen Sie den MBR aus dem Backup wieder her.
Wenn die Sicherung auch nach erfolgreichem Abschluss des Wiederherstellungsvorgangs nicht funktioniert, liegt ein physischer Schaden in diesem Sektor vor. Versuchen Sie die in den nächsten Kapiteln beschriebenen Programmiertechniken zur Datenwiederherstellung, um die Daten wiederherzustellen. Wenn Sie überhaupt kein Programmierer sind, wenden Sie sich besser an ein gutes Datenwiederherstellungszentrum.
Wenn Sie keine Sicherungskopie des MBR haben, versuchen Sie, die Partitionstabelle manuell mit einem Festplattenbearbeitungstool wie Diskedit zu schreiben. In manchen Fällen ist dies jedoch sehr schwierig.
Benutzer, die keine Programmierer sind und auch über kein Backup verfügen, können die Methode verwenden, die ich seit der Entwicklung meines Datenwiederherstellungsprojekts während meiner Collegezeit verwende.
Suchen Sie dazu einfach nach einem Computer in Ihrer Nähe, der eine annähernd gleich große Festplatte und Partitionsanzahl hat und – am wichtigsten – über dasselbe Betriebssystem verfügt wie Ihr Computer.
Meistens funktioniert es jedoch einwandfrei. Wenn nicht, kann es Ihnen zumindest helfen, auf die erste Partition Ihrer Festplatte zuzugreifen. Sogar Ihr Betriebssystem wird normal booten, wenn es in der ersten Partition installiert wurde und die anderen Informationen nicht beschädigt sind.
Wenn MBR in Ordnung ist, überprüfen Sie DBR
Wenn der MBR in Ordnung ist, überprüfen Sie den DBR (DOS Boot Record). Wie bereits erwähnt, ist dies der erste Sektor in der DOS-Partition und enthält ein kleines Programm, das die versteckten Dateien lädt und das Betriebssystem bootet.
Der DBR enthält außerdem viele wichtige Informationen zu FAT, Stammverzeichnisclustern und Partitionsgröße usw. Verwenden Sie ein Dienstprogramm wie Diskedit, um die DBR-Informationen zu lesen. Wenn der DBR beschädigt ist oder ungültige Informationen enthält, stellen Sie den DBR aus der Sicherung wieder her.
Alle professionellen Programme zur Datenwiederherstellung können den DBR neu schreiben. In den nächsten Kapiteln des Buches werden wir besprechen, wie man den DBR der Partition mit Programmierung neu schreibt.
Sie können den DBR der Partition auch mit Hilfe von Diskedit neu schreiben, indem Sie entsprechende Informationen angeben.
Es gibt auch eine sehr einfache Möglichkeit, den Bereich der Beschädigung herauszufinden. Die auf dem Bildschirm angezeigten Fehlermeldungen haben einen bestimmten Grund. Die Beschreibung einiger wichtiger Fehlermeldungen lautet wie folgt:
Nachricht |
Beschreibung |
„Beim Lesen des Laufwerks wurde kein Sektor gefunden“ |
Diese Meldung kann bei jedem DOS-Vorgang auftreten. Im Allgemeinen wird sie durch ein Nachlassen der Leistung oder den Verlust einer Sektor-ID verursacht. |
„Datenfehler beim Lesen des Laufwerks“ |
Diese Meldung kann während eines beliebigen DOS-Vorgangs erscheinen. Sie wird durch eine fehlgeschlagene Datenprüfung – CRC (Cyclic Redundancy Check) oder ECC (Error Correction Code) – verursacht. Diese „Datenprüfung“ bezieht sich auf den Mechanismus, mit dem überprüft wird, ob die von der Festplatte gelesenen Daten zuverlässig sind. |
„ 0 Festplatte(n) gefunden“ |
Es wird angezeigt, wenn die Festplatte vom BIOS des Computers nicht erkannt wird. Überprüfen Sie die Strom- und Datenkabelverbindungen der Festplatte. Wenn die Verbindungen in Ordnung sind, liegt das Problem möglicherweise an einem Hardwarefehler der Festplatte. |
„Festplattenfehler, drücken Sie F1, um fortzufahren“ |
Wie oben |
„Ungültige Laufwerksspezifikation“ |
Es wird angezeigt, wenn das System die Hardware nicht erkennt, keine Partitionsinformationen vorhanden sind oder der Gerätetreiber des Laufwerks fehlt. |
„Ungültige Konfiguration. Drücken Sie F1, um fortzufahren.“ |
Wenn die Festplatte verfügbar ist, ist entweder die Batterie auf der Hauptplatine leer und das System hat seine SETUP-Konfigurationsinformationen verloren oder die Festplatte reagiert nicht. |
„Ungültige Partitionstabelle“ |
Dies ist die MBR-Fehlermeldung. Sie wird angezeigt, wenn die Partitionstabelle des MBR nicht über die gültigen Partitionsinformationen verfügt. |
„Fehler beim Laden des Betriebssystems“ |
Dies ist die MBR-Fehlermeldung. Sie wird angezeigt, wenn die MBR-Informationen beschädigt sind. |
„Fehlendes Betriebssystem“ |
Das Gleiche wie oben. |
„Fehler beim Booten der Festplatte“ |
Dies ist eine DBR-Fehlermeldung. Normalerweise sollte auf die Festplatte zugegriffen werden können, wenn Sie von einer Diskette booten. Obwohl die Festplatte nicht bootfähig ist, sollte dies keinen Einfluss auf den Zugriff auf die Daten auf der Festplatte haben. |
„Kein Systemdatenträger oder Datenträgerfehler“ |
Das Gleiche wie oben. |
„Fehlerhafter oder fehlender Befehlsinterpreter“ |
Diese Meldung wird aufgrund eines fehlerhaften oder fehlenden Befehlsinterpreters angezeigt. Zum Beispiel, wenn das Betriebssystem command.com im aktuellen Pfad nicht findet oder command.com beschädigt ist. |