> How To > Ressource-Artikel > FAT32-Strukturinformationen - MBR, FAT32-Bootsektor

FAT32-Strukturinformationen - MBR, FAT32-Bootsektor

review iconHauptinhalt:

author-Maria Maria   Updated am 01.08.2024, 14:32   Ressource-Artikel

Zusammenfassung:

Dieser Artikel bietet eine detaillierte Einführung in die FAT 32 Dateisystemstruktur, FAT 32 Bootsektor, FAT 32 Partitionstabelle, FAT 32 MBR. Wenn Sie versehentlich Daten verloren haben, laden Sie EaseUS Data Recovery Wizard kostenlos herunter, um Dateien wiederherzustellen und verlorene Daten zu retten, die Festplatte zu unformatieren, formatierte oder gelöschte Festplatten und Partitionen unter FAT 32-Dateisystem wiederherzustellen.

Was ist der Master Boot Record?

Der Master Boot Record ist für fast alle Betriebssysteme gleich. Er befindet sich im ersten Sektor des Festplattenlaufwerks, in Zylinder 0, Kopf 0, Sektor 1. Er ist das erste Stück Code, das Ihr Computer ausführt, nachdem er die gesamte Hardware überprüft (POST) und die Kontrolle über die Ladesoftware auf die Festplatte übertragen hat. Er enthält auch die Partitionstabelle, in der die verschiedenen Bereiche Ihrer Festplatte definiert sind. Wenn dieser kleine 512-Byte-Abschnitt beschädigt wird, ist Ihre Festplatte im Grunde genommen hirntot.

Versetzt Beschreibung Größe
000h Ausführbarer Code (bootet Computer) 446 Bytes
1BEh 1. Partitionseintrag (siehe NextTable) 16 Bytes
1CEh 2. Partition Eintrag 16 Bytes
1DEh 3. Partition Eintrag 16 Bytes
1EEh 4. Teilungseintrag 16 Bytes
1FEh Boot Record Unterschrift (55hAAh) 2 Bytes
  • Partitionseintrag (Teil des MBR)
Versetzt Beschreibung Größe
00h Aktueller Zustand der Partition (00h=Inaktiv, 80h=Aktiv) 1 Byte
01h Beginn der Teilung - Kopf 1 Byte
02h Beginn der Trennwand - Zylinder/Sektor (siehe unten) 1 Wort
04h Art der Trennwand (siehe Liste unten) 1 Byte
05h Ende der Trennwand - Kopf 1 Byte
06h Ende der Trennwand - Zylinder/Sektor 1 Wort
08h Anzahl der Sektoren zwischen dem MBR und dem ersten Sektor der Partition 1 Doppelwort
0Ch Anzahl der Sektoren in derPartition 1 Doppelwort
  • Zylinder-/Sektorkodierung

Ich vermute, dass in den Tagen der 10-MB-Festplatten und 8086er der Code sehr knapp war. Also hat man alles getan, um Platz zu sparen. Leider müssen wir jetzt damit leben, aber zum Glück haben sie neue Wege gefunden, das System zu übersetzen, so dass die 1024-Zylinder-Grenze (2^10) kein allzu großes Problem darstellt, zumindest nicht für neuere Computer. Ältere Computer benötigen in der Regel eine Art Disk-Overlay-Programm, damit sie die gesamte Festplatte sehen können.

Wie auch immer, um den Sektor zu erhalten, müssen Sie eine UND-Maske ($3F) auf ihn anwenden. Um den Zylinder zu erhalten, nimmt man das High-Byte und verknüpft es mit dem Low-Byte, das mit ($C0) UND-maskiert wurde und dann um zwei nach links verschoben wird. Es ist nicht ganz einfach zu erklären, deshalb zeige ich Ihnen einfach, wie ich es gemacht habe, mit zwei Routinen, die ich (in Pascal) für die Kodierung und Dekodierung des Zylinders/Sektors erstellt habe. Ich hoffe, auch wenn Sie Pascal nicht kennen, können Sie es lesen.

Function CylSecEncode(Cylinder, Sector: Word): Word;
Begin
CylSecEncode: = (Lo(Cylinder) shl 8) oder (Hi(Cylinder) shl 6) oder Sector;
Ende;

Procedure CylSecDecode(Var Cylinder, Sector: Word; CylSec : Word);
Begin
Cylinder: = Hi(CylSec) oder ((Lo(CylSec) und $C0) shl 2);
Sektor: = (CylSec und $3F);
Ende;

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Zylinder Bits 7bis 0 Zylinder Bits 9+8 Sektor Bits 5 bis0

Auflistung der Partitionstypen

Es gibt noch mehr als die hier gezeigten, aber ich habe nur diejenigen aufgeführt, die für MS-Betriebssysteme relevant sind.

Wert Beschreibung
00h Unbekannt oder Nichts
01h 12-Bit-FAT
04h 16-bit FAT (Partition kleiner als 32MB)
05h Erweiterte MS-DOS-Partition
06h 16-bit FAT (Partition größer als 32MB)
0Bh 32-Bit-FAT (Partitionierung bis zu 2048 GB)
0Ch Gleich wie 0BH, aber unter Verwendung von LBA1 13h Erweiterungen
0Eh Gleich wie 06H, aber mit LBA1 13h Erweiterungen
0Fh Gleich wie 05H, aber mit LBA1 13h Erweiterungen

Lesen mehrerer Partitionen

Obwohl es bei FAT32 nicht so wahrscheinlich ist, dass mehrere Partitionen vorhanden sind wie bei FAT16, funktioniert es dennoch auf die gleiche Weise. Die erste Partition ist die primäre Partition, und alles andere wird in der erweiterten Partition gespeichert. Das Auslesen dieser zusätzlichen Partitionen ist allerdings ein wenig knifflig (nicht viel, nur ein wenig). Der erste Eintrag in der Partitionstabelle zeigt, wo sich die primäre Partition befindet (wie groß sie ist, wo sie beginnt und wo sie endet). Der zweite Eintrag in der Partitionstabelle zeigt an, wo sich die gesamte erweiterte Partition befindet (die mehr als nur eine Partition umfassen kann). Um weitere Partitionen zu lesen, gehen Sie zu der Stelle, an der die erweiterte Partition beginnt, und lesen den ersten Sektor. Er verhält sich genau wie der MBR. An der Stelle, an der der Code stehen soll, ist eine Leerstelle, und in der Partitionstabelle steht als erster Eintrag die nächste Partition im Laufwerk, und wenn es weitere gibt, gibt es eine weitere erweiterte Partition, genau wie zuvor. Allerdings werden alle Verweise auf Sektornummern mit dem neuen MBR-Punkt als Referenz gemacht, was es zu einem virtuellen Laufwerk macht. Für den Fall, dass dies keinen Sinn ergibt (und bei der Art, wie ich Dinge erkläre, kann ich verstehen, wenn es keinen Sinn ergibt), möchte ich Ihnen zeigen, wie ein Laufwerk mit drei Partitionen eingerichtet ist.

MBR des gesamten Laufwerks

Eintrag #1 - Zeigt auf Partition #1
Eintrag #2 - Zeigt auf die gesamte erweiterte Partition

Sie würden den ersten Sektor dieser erweiterten Partition lesen und eine andere MBR-Struktur sehen.

MBR der erweiterten Partition

Eintrag #1 - Zeigt auf Partition #2
Eintrag #2 - Zeigt auf den Rest der erweiterten Partition nach Partition #2

Nun würden alle Verweise auf Sektornummern (insbesondere der Eintrag bei Offset 08h) in diesen Einträgen nicht vom Anfang des Laufwerks, sondern vom Anfang der erweiterten Partition aus referenziert werden. Die CHS-Nummern (Cylinder, Head, Sector) würden jedoch weiterhin richtig sein.

Auch hier würden Sie den ersten Sektor der erweiterten Partition lesen und den nächsten MBR sehen.

MBR des Rests der erweiterten Partition

Eintrag #1 - Zeigt auf Partition #3
Kein Eintrag #2, da dies die letzte Partition war

Wenn es eine weitere Trennwand gäbe, würde das Muster wie zuvor fortgesetzt, bis die letzte erreicht ist.

FAT32 Boot Record Informationen

Diese Informationen befinden sich im ersten Sektor einer jeden Partition.

Versetzt Beschreibung Größe
00h Sprungcode + NOP 3 Bytes
03h OEM-Name (wahrscheinlich MSWIN4.1) 8 Bytes
0Bh Bytes pro Sektor 1 Wort
0Dh Sektoren pro Cluster 1 Byte
0Eh Reservierte Sektoren 1 Wort
10h Anzahl der Kopien der FAT 1 Byte
11h Maximum Root DirectoryEntries (N/A für FAT32) 1 Wort
13h Anzahl der Sektoren in der Partition Kleiner als 32MB (N/A für FAT32) 1 Wort
15h Media Descriptor (F8h für Festplatten) 1 Byte
16h Sektoren pro FAT in älteren FATSystemen (N/A für FAT32) 1 Wort
18h Sektoren pro Spur 1 Wort
1Ah Anzahl der Köpfe 1 Wort
1Ch Anzahl der verborgenen Sektoren in der Partition 1 Doppelwort
20h Anzahl der Sektoren in der Partition 1 Doppelwort
24h Anzahl der Sektoren pro FAT 1 Doppelwort
28h Flags (Bits 0-4 zeigen die aktive FAT-Kopie an) (Bit 7 zeigt an, ob die FAT-Spiegelung aktiviert oder deaktiviert ist) (Wenn die FAT-Spiegelung deaktiviert ist, werden die FAT-Informationen nur auf die durch die Bits 0-4 angegebene Kopie geschrieben) 1 Wort
2Ah Version des FAT32-Laufwerks (HighByte = Hauptversion, Low Byte = Nebenversion) 1 Wort
2Ch Clusternummer des Starts des Stammverzeichnisses 1 Doppelwort
30h Sektornummer des Dateisystem-Informationssektors (siehe Struktur unten) (vom Anfang der Partition aus referenziert) 1 Wort
32h Sektornummer des BackupBoot-Sektors (bezogen auf den Beginn der Partition) 1 Wort
34h Reserviert 12 Bytes
40h Logisches Laufwerk Nummer derPartition 1 Byte
41h Unbenutzt (könnte High Byte des vorherigen Eintrags sein) 1 Byte
42h Erweiterte Signatur (29h) 1 Byte
43h Seriennummer der Partition 1 Doppelwort
47h Volume Name der Partition 11 Bytes
52h FAT-Name (FAT32) 8 Bytes
5Ah Ausführbarer Code 420 Bytes
1FEh Boot Record Unterschrift (55hAAh) 2 Bytes

Dateisysteminformationen Sektoranweisung

Normalerweise gibt es einen zweiten Sektor der Partition, obwohl es im Bootsektor einen Verweis auf diesen gibt. Ich nehme an, dass er verschoben werden kann. Ich habe mir nie ein vollständiges Bild von diesem gemacht. Obwohl ich weiß, wo die wichtigen Felder sind.

Versetzt Beschreibung Größe
00h Erste Unterschrift (52h 52h 61h41h) 1 Doppelwort
04h Unbekannt, derzeit (Könnte einfach Null sein) 480 Bytes
1E4h Unterschrift des FSInfo-Sektors (72h 72h 41h 61h) 1 Doppelwort
1E8h Anzahl der freien Cluster (auf -1 gesetzt, wenn nicht bekannt) 1 Doppelwort
1ECh Cluster Nummer des Clusters, das zuletzt zugewiesen wurde. 1 Doppelwort
1F0h Reserviert 12 Bytes
1FCh Unbekannt oder Null 2 Bytes
1FEh Boot Record Unterschrift (55hAAh) 2 Bytes

FAT32-Laufwerkslayout

Versetzt Beschreibung
Beginn der Partition Bootsektor
Start + Anzahl der reservierten Sektoren Fette Tische
Start + # Reserviert + (# Sektoren pro FAT * 2) Datenbereich (Beginnt mitCluster #2)

Cluster Bedeutung

Ein Cluster ist eine Gruppe von Sektoren auf der Festplatte, in denen Informationen gespeichert sind. Ein 4K-Cluster hat 8 Sektoren (512*8=4096). Jedem Cluster wird ein Platz in der FAT-Tabelle zugewiesen. Wenn Sie sich einen Eintrag in der FAT-Tabelle ansehen, sagt Ihnen die Zahl dort, ob dieser Cluster Daten enthält oder nicht, und wenn ja, ob er das Ende der Daten ist oder ein weiterer Cluster folgt. Alle Daten auf einer Partition beginnen mit Cluster #2. Wenn der FAT-Eintrag 0 ist, befinden sich keine Daten in diesem Cluster. Wenn der FAT-Eintrag 0FFFFFFFh ist, dann ist dies der letzte Eintrag in der Kette.

Dies ist eine der größten Lücken in meinen Informationen. Ich kann nirgends finden, was die Zahlen in der FAT-Tabelle bedeuten. Ich konnte das Ende der Kette erkennen, indem ich mir ein FAT32-Laufwerk ansah, aber ich weiß nicht, was für einen BAD Cluster steht oder was die maximal gültige Zahl für die Anzeige von Daten ist.

Sie können die maximal zulässige Anzahl von Clustern in einer Partition mit dieser Formel berechnen:

( (Anzahl der Sektoren in der Partition) - (Anzahl der Sektoren pro Fat * 2) - (Anzahl der reservierten Sektoren) ) / (Anzahl der Sektoren pro Cluster)

Wenn in der Antwort auf diese Formel ein Rest übrig bleibt, bedeutet das nur, dass es am Ende der Partition ein paar zusätzliche Cluster gab (wahrscheinlich nicht genug, um einen weiteren Cluster zu bilden), also können Sie einfach alles nach dem Komma weglassen.

Verzeichnis Tabelle

Ein weiterer Aspekt bei der Betrachtung eines Dateisystems auf niedriger Ebene ist die Verzeichnistabelle. In der Verzeichnistabelle werden alle Datei- und Verzeichniseinträge gespeichert. Im Grunde gibt es nur einen Unterschied zwischen der Verzeichnistabelle von FAT16 und FAT32. Der Unterschied besteht darin, daß das reservierte OS/2-Byte (Offset 20 [14h]) in der Short Filename Structure durch das High-Word der Clusternummer ersetzt wird (da es nun 4 statt 2 Bytes sind).

Dateizuordnungstabelle

Fußnoten

1 - LBA = Logical Block Addressing (Logische Blockadressierung) - Verwendet die in neueren BIOS eingebauten Int 13h-Erweiterungen, um auf Daten oberhalb der 8GB-Grenze zuzugreifen, oder um nur im LBA-Modus zuzugreifen, anstatt CHS (Cylinder, Head, Sector)

Extra-Tipp: Wiederherstellung verlorener Daten von einer FAT32-Festplatte mit der EaseUS-Festplattenwiederherstellungssoftware

Wenn Sie versehentlich Daten auf einer FAT32-Festplatte, einem USB-Stick oder einem anderen Speichergerät gelöscht, entfernt oder formatiert haben, sollten Sie nicht in Panik geraten. Ihre beste Wahl ist es, sich von EaseUS Data Recovery Wizard helfen zu lassen! Hier möchten wir Ihnen empfehlen, EaseUS Data Recovery Wizard auszuprobieren, mit dem Sie alle verlorenen Daten innerhalb von 3 einfachen Schritten effektiv wiederherstellen und unformatieren können. Laden Sie es kostenlos herunter, um alle Ihre verlorenen FAT32-Daten wiederherzustellen:

 Download für Win
Keine Registrierung erfordert
 Download für Mac
Erfolgsquote: 99,7%