Master Boot Record
Der Master Boot Record (kurz: MBR) ist in der x86-Architektur der erste Datenblock (512 Byte) eines in Partitionen aufgeteilten, bootfähigen Speichermediums, wie beispielsweise einer Festplatte. Der MBR enthält eine Partitionstabelle, die die Aufteilung des Datenträgers beschreibt, und einen Boot-Loader, ein Programm, das ein Betriebssystem auf einer der Partitionen startet.
Speichermedien, die nicht in Partitionen unterteilt sind, z. B. Disketten oder CDs, enthalten keinen MBR. Hier wird der erste Datenblock als Bootsektor oder auch Boot Record bezeichnet.
Da er eine Partitionstabelle enthält, hat ein MBR die Eigenschaften eines Partitionssektors.
Ein Löschen oder ein Defekt am MBR führt dazu, dass der Computer überhaupt nicht mehr booten kann bzw. die Partition falsch erkennt und in der Folge das Betriebssystem oder Daten nicht mehr findet.
Inhaltsverzeichnis
Historische Entwicklung
Zunächst waren Speichermedien nicht in Partitionen unterteilt und enthielten an Position 0:0:1 (Kopf 0, Spur 0, Sektor 1) den Bootsektor. Diese Konvention sollte bei Festplatten mit mehreren Betriebssystemen nicht verletzt werden. Daher wurde die Partitionstabelle am Ende des Bootsektors platziert. Die Funktion des Boot-Loaders wurde so ergänzt, dass er die Partitionstabelle auswertet.
Aufbau des MBR
Adresse Funktion / Inhalt Größe
(Bytes)hex dez 0x0000 0 Boot-Loader max. 440 0x01B8 440 Disk-Signatur
(seit Windows 2000)4 0x01BC 444 Null
(0x0000)2 0x01BE 446 Partitionstabelle 64 0x01FE 510 55hex MBR-Signatur
(0xAA55)2 0x01FF 511 AAhex
Boot-Loader
Der Boot-Loader ist ein kleines Programm, das vom BIOS aufgerufen wird. Im Normalfall sucht dieses in der Partitionstabelle nach einer „aktiven Partition“, lädt den Boot-Sektor der ersten aktiven Partition und führt diesen aus. Dadurch wird dann das eigentliche Betriebssystem geladen.
Es existieren auch Bootmanager, die sich nicht an diese Konvention halten und stattdessen ein Auswahlmenü oder ähnliches anzeigen und so z. B. das Booten von beliebigen Partitionen erlauben.
Ein fehlender oder defekter Boot-Loader führt dazu, dass von der Festplatte überhaupt nicht gebootet werden kann, selbst wenn in einer der Partitionen ein Betriebssystem mit intaktem Bootsektor vorhanden ist.
Disk-Signatur
Die Disk-Signatur wird von Windows 2000 und XP verwendet, um Festplatten, die mit einer klassischen Partitionstabelle versehen sind (im Microsoft-Jargon Basisdatenträger), eindeutig zu identifizieren. Dadurch ist die Disk-Signatur z.B. bei der Zuordnung von Laufwerksbuchstaben zu Festplattenpartitionen von entscheidender Bedeutung: Während frühere Windows-Versionen auf die vom DOS-Unterbau ermittelten Laufwerksbuchstaben zurückgreifen, sind diese Zuordnungen ab Windows 2000 in Registry-Schlüsseln, u.a. HKLM\SYSTEM\MountedDevices, gespeichert.
Bei bestimmten System-Konstellationen wird die Disk-Signatur auch in der Datei boot.ini verwendet, die Teil des Boot-Loaders von Windows NT (NTLDR) ist.<ref>
Microsoft Knowledge-Base, Artikel 227704: Windows May Use Signature() Syntax in the Boot.ini File. bzw. Windows 2000 verwendet Syntax "Signature()" in Datei "Boot.ini".
</ref>
Windows vergibt die Disk-Signatur bei der Initialisierung einer neuen Festplatte.
Insbesondere nach Festplatten- oder Partitions-Backups können Probleme auftauchen, die mit der Disk-Signatur zusammenhängen:
- Eine System-Konfiguration, in der zwei Festplatten mit identischen Signaturen existieren, etwa die Original-Platte und eine Platte mit einer geklonten Kopie, kann zu einem instabilen System führen.
- Einer kopierten Systempartition wird unter bestimmten Umständen ein neuer Laufwerksbuchstabe zugewiesen. In solchen Fällen scheitert der Bootvorgang.<ref>c't-Hotline (kav): Systemkopie bootet nicht. in c't 3/2006, S. 180.
</ref>
Der Befehl fixmbr
in der Wiederherstellungskonsole lässt die Signatur unverändert. Dagegen frischt der Befehl fdisk /mbr
, der den Boot-Code neu schreibt, auch die Disk-Signatur auf.<ref>
Karsten Violka: Festplatten-ABC. Laufwerksbuchstaben unter Windows XP und 2000 bändigen. in c't 9/2005, S. 184.
</ref>
Der Linux-Befehl
dd if=/dev/null of=
<Festplatten-Device> bs=1 count=4 seek=440
überschreibt die Disk-Signatur mit Nullen.
Partitionstabelle
Die Partitionstabelle gibt Auskunft über die Partitionen auf einem Datenträger. Ist sie fehlerhaft oder fehlt sie gar vollständig ist der Zugriff auf die Daten der Partitionen nicht ohne weiteres möglich. In vielen Fällen lässt sich jedoch die Partitionstabelle mit Programmen wie Testdisk wieder herstellen.
MBR-Signatur
Die MBR-Signatur (auch Magic Number genannt) besteht aus den 2 Byte 55hex und AAhex. Auf Little-Endian-Systemen wird dies als 16-Bit-Zahl AA55hex interpretiert. Ist die Signatur vorhanden, so geht das BIOS davon aus, dass ein gültiger MBR vorhanden ist. Wird die Signatur nicht gefunden, vermutet das BIOS einen neuen bzw. gelöschten Datenträger. Der Bootvorgang wird dann abgebrochen und eine Fehlermeldung, etwa "Non-System or Non-Bootable Disk
" ausgegeben.<ref name="MSkb149877">
Microsoft Knowledge Base, Artikel 149877: Boot Record Signature AA55 Not Found. bzw. MBR-Signatur AA55 wird nicht gefunden.</ref>
Natürlich ist eine korrekte Signatur keine Garantie für gültigen Boot-Code im MBR. Sie dient lediglich dazu, zu verhindern, dass leere MBRs oder MBRs mit Zufallsdaten ausgeführt werden.
Auch bei Datenträgern, die nicht zum Booten verwendet werden, kann eine fehlende Signatur Auswirkungen haben. Es gibt BIOS-Versionen, die Datenträger ohne gültige Signatur in einem langsameren Modus betreiben. Vor der Geschwindigkeitsmessung (Benchmark) z. B. einer neuen Festplatte empfiehlt sich daher, zunächst den MBR der betreffenden Platte zu initialisieren.<ref name="cthotline19981911"> c't Hotline: Wundersame Plattenbeschleunigung. In c't 19/1998 S. 218</ref>
MBR verschiedener Betriebssysteme
Jedes Betriebssystem erstellt bzw. ergänzt bei der Installation standardmäßig den MBR, damit es geladen werden kann.
DOS und DOS-basierte Windows-Versionen
Unter DOS kann man sich den MBR bei nicht partitionierten Festplatten mit debug
ansehen. Wenn die Festplatte partitioniert (z. B. aufgeteilt in C:, D:, ...) ist, sieht man mit debug
nur den Boot Record von der jeweiligen logischen Partition.
MS-DOS und die auf DOS aufbauenden Windowsvarianten (also Windows 95 bis Windows ME) überschreiben den Boot-Loader im MBR bei der Installation ohne jegliche Rücksicht auf seinen bisherigen Inhalt.
Im Falle eines Fehlers im MBR kann unter MS-DOS und Windows 9x mit dem undokumentierten Befehl fdisk /mbr
ein neuer Standard-Masterbootrecord für jeweils diese Betriebssysteme geschrieben werden. Dabei wird der MBR komplett überschrieben (mit Ausnahme der Partitionstabelle), wodurch Bootviren vernichtet werden können, sofern das Virus nicht den Schreibzugriff auf den Master Boot Record erkennt und abfängt.<ref name="MSkb69013">
Microsoft Knowledge Base, Artikel 69013: FDISK /MBR rewrites the Master Boot Record. bzw. FDISK /MBR überschreibt Master Boot Record.</ref> Allerdings wird auch ein eventuell vorhandener Bootmanager vernichtet.
Windows-Versionen basierend auf Windows NT
Die Microsoft-Windows-Versionen der NT-Linie (z. B. NT 4, W2K und XP) überschreiben den Boot-Loader (die ersten 446 Bytes des MBR) bei jeder Neuinstallation zwar auch, berücksichtigen aber noch vorhandene Informationen über ein anderes Betriebssystem aus dem Hause Microsoft, also MS-DOS und andere Windowsversionen. In diesem Fall wird dann ein kleiner Bootmanager mit Auswahlmöglichkeit zwischen den verschiedenen installierten Microsoft-Betriebssystemen aktiviert.
Für Windows 2000 und XP gibt es die Wiederherstellungskonsole, hier dienen die Befehle fixmbr
und fixboot
(nur für x86-Systeme) zur Reparatur des MBR.
Linux
Linux-Distributionen installieren meist auf Anfrage einen „intelligenten“ Bootmanager, der auch fremde Betriebssysteme (z. B. MS-Windows) aufnimmt.
Mit dem Programm install-mbr
, das z. B. in der Linux-Distribution Knoppix enthalten ist, kann ein funktionsfähiger Boot-Loader in den MBR geschrieben werden.
Unter Linux kann man den MBR normalerweise mittels dd if=/dev/hda of=datei bs=512 count=1
(/dev/hda für ATA; /dev/sda für SCSI Festplatten) in eine Datei schreiben. Zum Wiederherstellen genügt analog dd of=/dev/hda if=datei bs=512
.
Steht keine entsprechende Sicherungsdatei zur Verfügung, kann der MBR mittels des Bootloaders LILO mit folgendem Befehl neu und „leer“ geschrieben werden: lilo -M /dev/hda -s /dev/null
.
Quellen
<references/>