Master Boot Record

Master Boot Record

Der Master Boot Record (kurz: MBR) ist bei BIOS-basierten Computern der x86-Architektur der erste Datenblock (512 Byte) eines in Partitionen aufgeteilten Speichermediums, wie beispielsweise einer Festplatte. Der MBR enthält eine Partitionstabelle, die die Aufteilung des Datenträgers beschreibt, und optional 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 der MBR eine Partitionstabelle enthält, hat er 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. Die Partitionstabelle lässt sich aber mit Programmen wie TestDisk oder GParted wiederherstellen, indem der gesamte Datenträger mit einem solchen Programm nach Partitionen durchsucht wird.

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 Partitionen 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. Die Firmware des Computers braucht daher nichts von Partitionen zu wissen.

Aufbau des MBR

Adresse Funktion / Inhalt Größe
(Bytes)
hex dez
0x0000 0 Boot-Loader (Programmcode) 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
Gesamt: 512

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.[1] 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 identischer Disk-Signatur existieren, z.B. eine Original-Platte und eine Platte mit einer bitweise identischen Kopie, wird im System keinem Laufwerkbuchstaben zugeordnet .
  • Einer kopierten Systempartition wird unter bestimmten Umständen ein neuer Laufwerksbuchstabe zugewiesen. In solchen Fällen scheitert der Bootvorgang.[2]

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.[3]

Der Linux-Befehl dd if=/dev/zero of=<Festplatten-Device> bs=1 count=4 seek=440 conv=notrunc ü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 wiederherstellen. Der Eintrag jeder Partition enthält eine CHS-Adresse sowie eine 32-Bit-lange LBA-Adresse. Dadurch lassen sich mit herkömmlichen Partitionstabellen maximal etwa 8 GiB (CHS) oder 2 TiB (LBA mit 32 Bit) große Festplatten nutzen. Um Festplatten oder Partitionen mit einer Größe von über 2 TiB anzusprechen, kann man die Nachfolgetechnologie GUID Partition Table (GPT) nutzen oder die Sektorengröße auf 1024 Bytes oder 2048 Bytes vergrößern.

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.[4] 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.[5]

MBR verschiedener Betriebssysteme

Viele verbreitete Betriebssysteme erstellen oder ergänzen bei der Installation standardmäßig den MBR so, dass das Betriebssystem gestartet werden kann.

DOS und MS-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 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 Rücksicht auf seinen bisherigen Inhalt.

Im Falle eines Fehlers im MBR kann mit dem undokumentierten Befehl fdisk /mbr ein neuer Standard-Masterbootrecord geschrieben werden. Dabei wird der gesamte MBR überschrieben (mit Ausnahme der Partitionstabelle), wodurch Bootviren entfernt werden können, sofern das Virus nicht den Schreibzugriff auf den Master Boot Record erkennt und abfängt.[6] Allerdings kann auch ein eventuell vorhandener Bootmanager entfernt werden.

Windows-Versionen basierend auf Windows NT

Einige Microsoft-Windows-Versionen der NT-Linie, u. a. XP, nicht jedoch NT 4 und 2000, überschreiben den Boot-Loader (die ersten 446 Bytes des MBR) bei jeder Neuinstallation zwar auch, berücksichtigen aber noch vorhandene Informationen über ein älteres Microsoft-Betriebssystem, also MS-DOS und andere darauf basierende Windows-Versionen. In diesem Fall wird der NTLDR mit Auswahlmöglichkeit zwischen den verschiedenen installierten Microsoft-Betriebssystemen vorkonfiguriert.

Für Windows 2000, XP und 2003 gibt es die Wiederherstellungskonsole, hier dient der Befehl fixmbr zur Reparatur des MBR und fixboot zur Reparatur des Bootsektors einer Partition (nur für x86-Systeme).

Microsoft Windows Vista und 7

Im Gegensatz zu älteren NT-basierten Windows-Systemen startet Vista aus dem Bootsektor den Bootloader „BOOTMGR“ (unter NT/XP war dies „ntldr“). BOOTMGR entnimmt die Informationen zum bootenden Betriebssystem nicht der Datei boot.ini, sondern der Datei \Boot\BCD, welche entweder auf der EFI-Systemen-Partition liegt oder direkt auf der Systempartition bei BIOS-Systemen. Im Bootprozess vergleicht BOOTMGR die Disk-Signatur (Bytes 440-443 im MBR) mit seinen gespeicherten Booteinträgen aus der BCD-Datei. Wurde die Disk-Signatur verändert, verweigert Windows den Start mit einem „winload error“. Die BCD-Datei ist im Gegensatz zur boot.ini keine einfache Textdatei, sondern eine Binärdatei (genauer vom Aufbau her ein Hive) und kann nicht mit einem normalen Texteditor bearbeitet werden. Zur Bearbeitung der BCD-Datei gibt es ein eigenes Tool mit dem Namen bcdedit.exe. Es kann in einem laufenden Windows (oder von einer entsprechenden Windows-PE CD) an der Kommandozeile aufgerufen werden.[7] Alternativ kann man beim Booten von der Windows-CD über den Punkt „Computer reparieren/Systemwiederherstellungsoptionen“ das Tool bootrec.exe in der Eingabeaufforderung aufrufen. bootrec /fixmbr schreibt einen neuen MBR, bootrec /fixboot einen neuen Startsektor in die Systempartition.[8]

Linux (und einige UNIX-Varianten)

Linux-Distributionen oder Solaris installieren meist den Bootlader GRUB, seltener den älteren LILO, Syslinux oder andere. GRUB ist in der Lage, verschiedene Betriebssysteme (z. B. Linux, BSD, OSX oder MS Windows) zu starten.

GRUB

Beim Systemstart wird zuerst die „Stage 1“ des GRUB aus dem MBR eingelesen und ausgeführt. Sie hat nur die Aufgabe, die sogenannte „Stage 2“ zu finden. Entweder wird der Sektor der Festplatte, in dem die „Stage 2“ beginnt in der „Stage 1“ hinterlegt oder es wird die Partitionsnummer und der Dateipfad angegeben. Im ersten Fall wird direkt die „Stage 2“ geladen. Im zweiten Fall wird zuerst die „Stage 1.5“, die aus einem Dateisystem-Treiber besteht, aus dem Bootsektor einer Partition geladen. Die „Stage 2“ liegt bei unixoiden Betriebssystemen normalerweise in der Datei /boot/grub/stage2. Die „Stage 2“ liest die Konfiguration aus /boot/grub/menu.lst oder /boot/grub/grub.cfg ein, zeigt ein Bootmenü an und lädt anschließend den Kernel und sein Image oder startet den Bootloader eines anderen Betriebssystems, wie Windows.

LILO

Bei LILO werden alle zum Booten nötigen Daten direkt in den MBR geschrieben. LILO startet immer direkt den ersten Sektor des Kernels. Die LILO-Konfigurationsdatei (/etc/lilo.conf) dient einzig dem Programm /sbin/lilo dazu, einen MBR zu erzeugen. Am Start des Systems ist nur der von /sbin/lilo erzeugte MBR beteiligt. Durch dieses einfache Konzept geht einiges an Flexibilität verloren. So muss bei jeder Änderung am Kernel oder an den Bootoptionen ein neuer MBR geschrieben werden. Bootmanager wie Grub oder Syslinux werten jedes Mal beim Booten ihre Konfigurationsdatei aus und sind zum Teil sogar in der Lage, diese während des Bootmenüs zu modifizieren.

Installation, Sicherungskopie und Deinstallation

Mit dem Befehl „grub set /dev/sda“ (bei LILO: „lilo /dev/sda“) wird die „Stage 1“ von GRUB in den MBR geschrieben und falls vorgesehen die „Stage 1.5“ in den Bootsektor einer Partition. Unter Linux kann man den Code-Teil (samt Partitionstabelle) des MBR (s.o) normalerweise mit dem Befehl „dd if=/dev/hda of=datei bs=512 count=1“ (/dev/hda für IDE; /dev/sda für SCSI-, S-ATA-, IEEE 1394- oder USB-Festplatten) in einer Datei als Sicherungskopie speichern. Zum Wiederherstellen genügt analog „dd of=/dev/hda if=datei conv=notrunc“. Da dieses Vorgehen aber den gesamten ersten Sektor der Platte neu schreibt, geht eine zwischenzeitlich geänderte Partitionierung wieder verloren! Daher empfiehlt es sich, nach jeder Umpartitionierung eine neue Backup-Kopie des MBR zu erstellen.

Löschen kann man den GRUB- oder LILO-MBR mit dem Befehl „dd if=/dev/zero of=/dev/hdx bs=512 count=1 conv=notrunc“. Dabei wird der Boot-Code des MBR und die Partitionstabelle (Bestandteil des 512 Bytes großen Sektors!) komplett mit Nullen überschrieben. Soll die Partitionstabelle jedoch erhalten bleiben und nur der eigentliche Bootcode überschrieben werden, muss man dd mit einer Blockgröße von 1 Byte betreiben und nur die ersten 440 Bytes überschreiben:
dd if=/dev/zero of=/dev/hdx bs=1 count=440 conv=notrunc“.

Auch die Installation eines anderen Bootloaders (z. B. NTLDR) löscht in der Regel den Bootcode des zuvor installierten Systems vollständig, lässt die Partitionstabelle jedoch unangetastet.

MBR bei EFI-basierten Computern

Bei EFI-basierten Computern kommt anstelle der MBR-Partitionstabelle die neuere GUID Partition Table (GPT) zum Einsatz. Aus Gründen der Abwärtskompatibilität enthält jede GPT einen sogenannten Schutz-MBR. Dieser sorgt dafür, dass Betriebssysteme bzw. Programme, die noch nicht mit GPT zurechtkommen, statt eines leeren Datenträgers eine einzige Partition sehen, die über den ganzen Datenträger geht. Dieser Schutz-MBR lässt sich außerdem dazu benutzen, um MBR-basierte Betriebssysteme auf EFI-basierten Computern zu installieren, indem die Partitionen der GPT auf die MBR-Partitionstabelle abgebildet werden. Diesen Trick benutzt Apple bei seiner Boot-Camp-Software, die die Installation von Windows auf Intel-basierten Macs erlaubt. Auch die EFI-Applikation rEFIt kann mit dem Programm gptsync GPT und MBR-Partitionstabelle synchronisieren.

Quellen

  1. 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“.
  2. c’t-Hotline (kav): Systemkopie bootet nicht. in c’t 3/2006, S. 180.
  3. Karsten Violka: Festplatten-ABC. Laufwerksbuchstaben unter Windows XP und 2000 bändigen. in c’t 9/2005, S. 184.
  4. Microsoft Knowledge Base, Artikel 149877: Boot Record Signature AA55 Not Found. bzw. MBR-Signatur AA55 wird nicht gefunden.
  5. c’t Hotline: Wundersame Plattenbeschleunigung. In c’t 19/1998 S. 218
  6. Microsoft Knowledge Base, Artikel 69013: FDISK /MBR rewrites the Master Boot Record. bzw. FDISK /MBR überschreibt Master Boot Record.
  7. Multibooters - Dual/Multi Booting With Vista bootmgr and BCD und Disk Signature
  8. Microsoft Knowledge-Base, Artikel 927392: Beheben und Reparieren von Startproblemen mit dem Hilfsprogramm bootrec.exe

Siehe auch

Wikibooks Wikibooks: Urlader – Lern- und Lehrmaterialien

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Master Boot Record — Saltar a navegación, búsqueda Algunas veces se emplea para el arranque del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco… …   Wikipedia Español

  • Master Boot Record — Le Master Boot Record ou MBR (parfois aussi appelé Zone amorce ) est le nom donné au premier secteur adressable d un disque dur (cylindre 0, tête 0 et secteur 1, ou secteur 0 en adressage logique) dans le cadre d un partitionnement Intel. Sa… …   Wikipédia en Français

  • Master Boot Record —   [Abk. MBR, dt. »hauptsächliche Boot Aufzeichnung«, Haupt Boot Bereich] der, erster Sektor einer Festplatte (bzw. bei mehreren: der ersten Festplatte). Er enthält Angaben zur Partitionierung der Festplatte sowie Befehle zum Starten des… …   Universal-Lexikon

  • Master Boot Record — es la traducción del inglés de registro principal de arranque (acrónimo MBR), es un sector de 512 bytes al principio del disco duro que contine una secuencia de comandos necesarios para cargar un sistema operativo. Es decir, es el primer registro …   Enciclopedia Universal

  • Master boot record — A master boot record (MBR) is a type of boot sector popularized by the IBM Personal Computer.[1] It consists of a sequence of 512 bytes located at the first sector of a data storage device such as a hard disk. MBRs are usually placed on storage… …   Wikipedia

  • Master boot record — Almacenamiento de un master boot record estándar Dirección Descripción 0x0000 Área de código 0x01B8 4 bytes; firma del disco (opcional) 0x01BC 2 bytes; normalmente 0x0000 0x01BE Para entradas en la tabla de particiones primarias de 16 bytes… …   Wikipedia Español

  • Master-Boot-Record — Der Master Boot Record (kurz: MBR) ist bei BIOS basierten Computern der x86 Architektur der erste Datenblock (512 Byte) eines in Partitionen aufgeteilten Speichermediums, wie beispielsweise einer Festplatte. Der MBR enthält eine Partitionstabelle …   Deutsch Wikipedia

  • Master boot record — Le Master Boot Record ou MBR (parfois aussi appelé Zone amorce ) est le nom donné au premier secteur adressable d un disque dur (cylindre 0, tête 0 et secteur 1, ou secteur 0 en adressage logique) dans le cadre d un partitionnement Intel. Sa… …   Wikipédia en Français

  • master boot record — paleidimo įrašas statusas T sritis informatika apibrėžtis Įrašas, esantis pirmajame ↑paleidimo disko sektoriuje su pirmomis komandomis, skirtomis operacinei sistemai arba ↑paleidyklei įkelti ir paleisti. Kai kompiuteris įjungiamas, pirmiausia… …   Enciklopedinis kompiuterijos žodynas

  • Master Boot Record — …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”