Volume Boot Record

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Auch dieser Artikel bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite des Artikels Master Boot Record angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.
QS-Informatik

Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)

Rechte Bildhälfte: Schematische Darstellung eines Volume Boot Record (Partitionierung gemäß den MBR-Spezifikationen. Links ein Master Boot Record)

Der Volume Boot Record (kurz VBR) sind die ersten Sektoren einer Partition eines Speichermediums, wie zum Beispiel einer Festplatte, in einem BIOS-basiertem Computer mit einer oder mehreren Partitionen innerhalb eines File Allocation Table-Dateisystems. Ein VBR kann (je nach Unterstützung durch das Dateisystem) verschieden groß sein, mindestens ist jedoch der erste Sektor vorhanden, welcher Informationen beinhaltet, die von dem Master Boot Record (MBR) beim Booten des Computers ausgewertet werden. Dieser Artikel beschreibt einen 3-Sektoren-VBR.

Aufbau eines VBR[Bearbeiten]

Sektor 0 des VBR[Bearbeiten]

Die folgende Tabelle stellt den Aufbau des Sektors 0 eines VBR dar. Dabei werden die einzelnen Funktionsbytes als Offset vom Beginn des VBR gezählt.

Offset Länge
(Bytes)
Beschreibung
0x00 3 Sprungbefehl zum Bootloader (EB xx 90 oder E9 xx xx)
0x03 8 OEM|System Name
0x0B 2 Bytes pro Sektor (üblicherweise 512; 1024, 2048 oder 4096 erlaubt)
0x0D 1 Sektoren pro Cluster (2n mit n={1..64}. n=128 sollte nicht benutzt werden)
0x0E 2 Anzahl der reservierten Sektoren (inkl. Boot Sektor). 1 für FAT12/16*, 32 für FAT32.
0x10 1 Anzahl der FATs (sollte immer 2 sein).
0x11 2 Maximale Anzahl der Einträge im Hauptverzeichnis. Sollte 0 für FAT32 (unbegrenzt), 512 für FAT16, anderenfalls multipliziert mit 32 ein Vielfaches der Bytes pro Sektor sein.
0x13 2 Anzahl aller Sektoren der Partition. Wenn 0, dann steht der Wert an 0x20. Muß für FAT32 == 0 sein, anderenfalls nur 0, wenn Anzahl >= 64 K.
0x15 1 Medienbezeichner. Erlaubt sind 0xF8 (Festplatte) .. 0xFF.
0x16 2 Anzahl der Sektoren pro FAT. Bei FAT32 == 0 (steht an 0x24).
0x18 2 Anzahl der Sektoren pro Track für BIOS INT13. Normalerweise nur relevant für Medien mit einer Geometrie - Zylinder/Kopf/Sektor (C/H/S) Adressierung.
0x1A 2 Anzahl der Köpfe für BIOS INT13. Normalerweise nur relevant für Medien mit einer Geometrie - C/H/S-Adressierung.
0x1C 4 Anzahl von Sektoren, die sich vor dieser Partition befinden (auch als "hidden sectors" bezeichnet). Bei Medien ohne MBR (z.B. Floppy) 0. OS spezifisch. Normalerweise nur relevant für Medien, die via BIOS INT13 sichtbar sind.
0x20 4 Anzahl aller Sektoren der Partition. Wenn 0, dann steht der Wert an 0x13. Muß für FAT32 != 0 sein, anderenfalls nur != 0, wenn >= 64K.
0x24 4 nur FAT32: Anzahl der Sektoren pro FAT.
0x24 1 nur FAT12/16: Physische Laufwerksnummer für BIOS INT13 (0+n ... Floppy n, 0x80+n .. Festplatte n). OS spezifisch.
0x25 1 nur FAT12/16: reserviert (durch NT genutzt).
0x26 1 nur FAT12/16: erweiterte Bootsignatur: Wenn == 0x29 dann sind die folgenden 3 Felder präsent.
0x27 4 nur FAT12/16: Volume ID (i.d.R. Kombination aus Datum und Zeit).
0x2C 11 nur FAT12/16: Volume Name (mit Leerzeichen aufgefüllt, z.B. 'NO NAME ').
0x37 8 nur FAT12/16: Dateisystem ID (mit Leerzeichen aufgefüllt: 'FAT ', 'FAT12 ' oder 'FAT16 '). Hat nur informellen Charakter, d.h. sollte nicht zur Bestimmung des FAT-Typs genutzt werden!
0x24 4 nur FAT32: Anzahl der Sektoren pro FAT.
0x28 2 nur FAT32: FAT-Bitschalter:

15:8 .. reserviert
7 .. 0 => FAT wird zur Laufzeit in alle anderen FATs gespiegelt. 1 => nur eine FAT ist aktiv.
6:4 .. reserviert.
3:0 .. Nummer der aktiven FAT (0 basiert), wenn Spiegelung deaktiviert ist (siehe Bit 7).

0x2A 2 nur FAT32: Dateisystem-Version (HI-Byte: major, LO-Byte: minor)
0x2C 4 nur FAT32: Startcluster des Hauptverzeichnisses (a priori 2).
0x30 2 nur FAT32: Sektornummer des Dateisystem-Informationssektors innerhalb des reservierten Bereichs (bei Microsoft-Betriebssystemen immer == 1).
0x32 2 nur FAT32: Wenn != 0, Beginn (Sektornummer) der Kopie der VBRs innerhalb des reservierten Bereichs (a priori 6).
0x34 12 nur FAT32: Reserviert.
0x40 1 nur FAT32: Physische Laufwerksnummer für BIOS INT13 (0+n ... Floppy n, 0x80+n .. Festplatte n). OS spezifisch.
0x41 1 nur FAT32: Reserviert (durch NT genutzt).
0x42 1 nur FAT32: Erweiterte Bootsignatur: Wenn == 0x29 dann sind die folgenden 3 Felder präsent.
0x43 4 nur FAT32: Volume ID (i.d.R. Kombination aus Datum und Zeit).
0x47 11 nur FAT32: Volume Name (mit Leerzeichen aufgefüllt, z.B. 'NO NAME ').
0x52 8 nur FAT32: Dateisystem ID (mit Leerzeichen aufgefüllt: 'FAT32 '). Hat nur informellen Charakter, d.h. sollte nicht zur Bestimmung des FAT-Typs genutzt werden!
0x5A 324 MSDOS5.0: Bootloader-Programmcode. Fängt oftmals nach dem BIOS Parameter Block an (BPB: FAT12/16 0x0B..0x3D, FAT32 0xB..0x59 inklusive) und kann Teile im VBR[2] haben, im normalen Datenbereich des Dateisystems oder sogar in normalerweise nicht sichtbaren/ungenutzten Sektoren der Platte (z.B. Viren). Auch Position, Inhalt und Größe der beispielhaft für MSDOS5.0 angegebenen 3 folgenden Felder kann je nach Bootloader-Version und Sprache variieren.
0x19E 67 MSDOS5.0: Bootloader-Fehlermeldungen
0x1E6 11 MSDOS5.0: Betriebssystem-Kernel-Name ('IO SYS')
0x1F1 11 MSDOS5.0: Systemdatei-Name ('MSDOS SYS')
0x1FC 2 Reserviert: 0x00 0x00
0x1FE 2 Bootsignatur 0x55 0xAA

Sektor 1: FSInfo Sektor (nur bei FAT32)[Bearbeiten]

Der FSInfo Sektor soll dem Betriebssystem helfen schneller das nächste freie Cluster zu finden. Gespeichert werden die momentan freien Cluster der Partition und welches Cluster als nächstes frei ist / sein könnte. Die Informationen sollen lediglich als 'Hinweis' für das Betriebssystem dienen und müssen nicht stimmen!

Byte 0 - 3 FSInfo Signatur 0x52 0x52 0x61 0x41 "RRaA"

Byte 4 - 483 Reserved

Byte 484 - 487 zweite Signatur 0x72 0x72 0x41 0x61 "rrAa"

Byte 488 - 491 Freie Cluster (muss nicht stimmen!)

Byte 492 - 495 Nächstes freies Cluster (muss nicht stimmen!)

Byte 496 - 507 Reserved

Byte 508 - 511 0x55 0xAA


Der FSInfo Sektor ist für einen reibungslosen Betrieb der FAT32 nicht notwendig.

Sektor 2 des VBR[Bearbeiten]

Sektor 2 des VBR hat erstmal keine Verwendung. Er stellt zusätzlichen Speicher für Bootcode zur Verfügung für den Fall, dass Sektor 0 nicht ausreichend Speicherplatz für den Bootcode hatte. Steht der komplette Bootcode schon in Sektor 0, bleibt Sektor 2 leer bis auf die letzten beiden Bytes in Offset 0x5FE und 0x5FF, die wiederum die Magic Number 0x55 0xAA enthalten.

Kopie des VBR[Bearbeiten]

Unter dem Dateisystem FAT32 wird von allen 3 Sektoren des VBR eine Sicherungskopie in den Sektoren 6 bis 8 angelegt. Diese können bei einer eventuellen Beschädigung des VBR zur Wiederherstellung genutzt werden. Gängige Formatierungsprogramme überschreiben diese Sicherungskopie in der Regel nicht, sodass ein reines Formatieren einer Partition und das damit verbundene neue Anlegen einer FAT noch lange nicht ein sicheres Entfernen aller auf der Partition vorhandenen Daten gewährleistet.

Siehe auch[Bearbeiten]