Zusammenfassung:
Dieser Artikel enthält detaillierte Informationen über FAT32-Dateisystemstruktur, FAT32 MBR oder FAT32 Bootsektor usw. Wenn Sie Daten auf FAT32-Laufwerk oder Partition verloren haben, laden Sie einfach die beste Datenrettungssoftware hier kostenlos herunter, um Daten von FAT32-Laufwerk/Partition jetzt wiederherzustellen.
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 |
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 |
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.
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 |
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)
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:
Related Articles
Kopiergeschwindigkeit wird 0 Bytes/s | Kopiervorgang sinkt auf 0 Byte/s Windows 10
Alle wichtigen Informationen über den Hogwarts Legacy Spielstand Speicherort
Wie kann man RAM Cache löschen? [Für Windows 10/11]
Beste Methode | macOS Monterey auf nicht unterstütztem Mac installieren