Master Boot Record

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Partitionierung gemäß den MBR-Spezifikationen: master boot record (links ein Master Boot Record, rechts ein Volume Boot Record)

Der Master Boot Record (kurz MBR) ist der erste Sektor eines in Partitionen aufteilbaren Speichermediums wie beispielsweise einer Festplatte. Der MBR enthält eine Partitionstabelle, welche die Aufteilung des Datenträgers beschreibt, und optional für BIOS-basierte Computer (x86, IBM-PC-kompatible) einen Bootloader, jenes Programm im Bootsektor, das im Chainloading-Prinzip den Bootloader eines Betriebssystems auf einer der Partitionen startet.

Historische Entwicklung[Bearbeiten]

Als der IBM-PC entwickelt wurde, waren Speichermedien zunächst nicht in Partitionen unterteilt. Die Urfassung des IBM-PC, das Modell 5150 von 1981, hatte zwei 5¼″-160-kB-Disketten-Laufwerke. Das mitgelieferte Betriebssystem PC DOS 1.0 (MS-DOS 1.14) konnte dann auch nur mit dieser speziellen Konfiguration umgehen.

Das BIOS, eine Neuentwicklung für den IBM-PC, erwartete an Position CHS 0:0:1 (Spur 0, Kopf 0, Sektor 1) den 512 Bytes großen Bootsektor, lud diesen in den Speicher und führte ihn aus. PC DOS 1.0 enthält an dieser Stelle einen Bootsektor, der von dieser fixen Konfiguration ausgeht: 160-kB-Speichermedien mit 8 Sektoren pro Spur.[1]

Mit Erscheinen des IBM-PC XT 1983 wurden neuere Disketten-Laufwerke und erstmals auch eine Festplatte eingeführt. Der Bootsektor musste also angepasst werden, da nicht mehr von einer fixen Konfiguration ausgegangen werden konnte. Mit PC DOS 2.0 (MS-DOS 2.0) wurde daher für Disketten der Volume Boot Record (VBR) eingeführt, der einen Boot Parameter Block (kurz BPB) für die unterschiedlichen Diskettenformate enthält und vom Code im VBR ausgewertet wird. Somit konnten auch Disketten mit 9 Sektoren pro Spur für die neuen 360-kB-Laufwerke verwendet werden und weitere zukünftige Diskettengeometrien wurden dadurch ermöglicht. Für die Festplatte wurde der Master Boot Record eingeführt, der nun eine Partitionierung erlaubte. Eine weitere der Einführung von Festplatten geschuldete Neuerung waren Unterverzeichnisse, die mit dem Backslash „\“ getrennt wurden. (Siehe FAT-Dateisystem).

Aus Kompatibilitätsgründen wurde die Konvention, den Bootsektor in den Speicher zu laden und auszuführen, beibehalten und sollte bei Datenträgern mit mehreren Partitionen nicht verletzt werden. Die Partitionstabelle ist somit innerhalb des Bootsektors platziert. Die Funktion des Bootloaders ist derart modifiziert, dass der Programmcode im MBR zunächst nur die enthaltene Partitionstabelle auswertet und im Chainloading-Prinzip den eigentlichen Bootloader der aktiven Partition lädt und ausführt. Die Firmware (das BIOS) des Computers braucht daher nichts von Partitionen zu wissen.

Synonyme[Bearbeiten]

Der Master Boot Record (MBR) wird manchmal auch fälschlich als Partitionssektor (englisch “partition sector”) bezeichnet. Er wird oft als Partitionstabelle wahrgenommen, obwohl neben dieser auch noch ein Programm (englisch Master Boot Code) enthalten ist, das die eigentliche Partitionierung auswerten und folglich den ersten Sektor der aktiven Partition laden soll.

Auch die Bezeichnung master boot sector (→Bootsektor)[2] ist nicht korrekt, obwohl es sich sachlich gesehen tatsächlich um einen Sektor handelt, der den Bootcode für und inklusive der Partitionstabelle enthält.

Die Rolle des MBR im Startvorgang[Bearbeiten]

Die Aussage, das BIOS würde die aktive Partition suchen und den Bootsektor (VBR) dieser Partition starten[3], ist im Allgemeinen falsch, weil die meisten BIOS-Varianten den Programmcode des MBR ausführen, um mit dem historischen IBM-PC kompatibel zu bleiben. Erst dieser im MBR enthaltene Maschinencode liest die Partitionstabelle aus, findet die aktive Partition und startet anschließend den ersten Sektor dieser Partition.[4]

Einige Hersteller entwickelten jedoch BIOS-Varianten mit zusätzlichen Funktionen, wie einem Auswahlmenü, um das Starten von einer beliebigen Partition zu erlauben; auch Funktionen, die weitere herstellerspezifische Programme von einer Partition nachladen, sind verbreitet. Dies bietet beispielsweise IBM/Lenovo auf vielen Laptops der ThinkPad-Reihe in Form einer „Servicepartition“, deren Programme direkt aus dem BIOS heraus gestartet werden können.[5] Bei vielen Compaq-Modellen wiederum ist das BIOS-Setup nur über externe Programme erreichbar: die Taste F10, die vom Anwender während der BIOS-Phase gedrückt werden muss um das BIOS zu konfigurieren, ist dabei nur dann verfügbar, wenn auch ein nur dafür vorgesehenes DOS-Betriebssystem inklusive Setup- und Diagnoseprogrammen in einer speziellen Partition (Typ 0x12[6]) auf der ersten Festplatte vorhanden ist.[7] Alternativ lässt sich dieses BIOS nur noch über eine Startdiskette mit den entsprechenden Programmen konfigurieren.[8]

Obwohl der IBM-PC ursprünglich jede Art von Bootcode unterstützte, prüfen manche BIOS-Versionen vor dem Start, ob eine gültige Partitionstabelle vorhanden ist. Wenn ein PC-System nur den MBR verwendet, merkt der Anwender davon in fast allen Fällen nichts, doch führt dies z. B. bei der Verwendung von GPT-formatierten Datenträgern dazu, dass der Startvorgang durch jenes BIOS unterbrochen wird oder ein Starten dadurch sogar grundsätzlich unmöglich ist.[9] Auch können auf solchen BIOS-Versionen keine Betriebssysteme gestartet werden, die keinen MBR verwenden oder benötigen (wie z. B. FreeBSD oder Eigenbau-Betriebssysteme). Selbst wenn ein gültiger MBR vorhanden ist, prüfen manche BIOS-Versionen zusätzlich, ob eine aktive Primärpartition existiert und ob diese einen Bootsektor enthält. Dieses Verhalten führt dazu, dass ein Betriebssystem, dessen Bootloader im MBR selbst installiert wird und das deswegen keine Partition als aktiv markiert, nicht starten kann und das BIOS stattdessen eine meist uneindeutige Fehlermeldung ausgibt.[10]

Aufbau des MBR[Bearbeiten]

Adresse Funktion / Inhalt Größe
(Bytes)
hex dez
0x0000 0 Bootloader (Programmcode) 440
0x01B8 440 Datenträgersignatur
(seit Windows 2000)
4
0x01BC 444 Null
(0x0000)
2
0x01BE 446 Partitionstabelle 64
0x01FE 510 55hex MBR-Signatur
(Auch beim Bootsektor vorhanden)
2
0x01FF 511 AAhex
Gesamt: 512

Bootloader[Bearbeiten]

Der Bootloader (englisch Master Boot Code bezeichnet) des Master Boot Record ist ein kleines Programm, das vom BIOS aufgerufen wird. Dieses lädt den Bootloader immer im 8086-kompatiblen 16-Bit-Modus Real Mode. Im Normalfall sucht dieser in der Partitionstabelle nach „sichtbaren“ und „aktiven“ Partitionen, lädt den Bootsektor der ersten aktiven Partition und führt diesen aus. Dadurch wird dann im Chainloading-Verfahren das eigentliche Betriebssystem geladen.

Dieser Bootloader kann jedoch durch speziell dafür vorgesehene Programme ersetzt bzw. erweitert werden. Populär sind vor allem Bootmanager, die sich vor den Master Boot Code schalten, indem sie diesen auslagern und im MBR ersetzen, um stattdessen ein Auswahlmenü oder ähnliches anzuzeigen und so z. B. das Starten von beliebigen Partitionen erlauben. Auch gibt es Disk Manager, welche BIOS-Limitierungen durch Geometrieumsetzung[11] umgehen sollen (z. B. um Logical Block Addressing bereitzustellen). Derartige Programme nutzen oft eine eigene Partition oder einen reservierten (unpartitionierten) Bereich auf der Festplatte, von dem weitere Dateien oder weiterer Programmcode nachgeladen wird.

Auch Bootviren nutzen den Bootloader des MBR, um vor dem eigentlichen Betriebssystemstart bereits aktiviert zu sein.

Ein fehlender oder defekter Bootloader führt dazu, dass vom Datenträger überhaupt nicht gestartet werden kann, selbst wenn in einer der Partitionen ein Betriebssystem mit intaktem Bootsektor vorhanden ist. Da einige Bootloader zusätzliche Dateien nachladen, liegt ein Defekt auch dann vor, wenn zwar der MBR und die Partition des Betriebssystems intakt sind, aber die Dateien des Bootloaders fehlerhaft sind oder fehlen.

Datenträgersignatur[Bearbeiten]

Die Datenträgersignatur wird von Windows 2000 und XP verwendet, um Datenträger, die mit einer klassischen Partitionstabelle versehen sind (von Microsoft Basisdatenträger genannt), eindeutig zu identifizieren. Dadurch ist die Datenträgersignatur z. B. bei der Zuordnung von Laufwerksbuchstaben zu Partitionen von entscheidender Bedeutung: Während frühere Windows-Versionen auf die von MS-DOS ermittelten Laufwerksbuchstaben zurückgreifen, sind diese Zuordnungen ab Windows 2000 in Registry-Schlüsseln, u. a. HKLM\SYSTEM\MountedDevices, gespeichert. Bei bestimmten Systemkonstellationen wird die Datenträgersignatur auch in der Datei boot.ini verwendet, die Teil des Bootloaders von Windows NT (NTLDR) ist.[12] Windows vergibt die Datenträgersignatur bei der Initialisierung eines neuen Datenträgers.

Insbesondere nach Datensicherungen können Probleme auftauchen, die mit der Datenträgersignatur zusammenhängen:

  • Eine Systemkonfiguration, in der zwei Datenträger mit identischer Datenträgersignatur existieren, z. B. ein Originaldatenträger und ein Datenträger 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.[13]

Der Befehl fixmbr in der Wiederherstellungskonsole von Windows XP lässt die Signatur unverändert. Dagegen frischt der Befehl fdisk /mbr, der den Boot-Code neu schreibt, auch die Datenträgersignatur auf.[14]

Der Linux-Befehl dd if=/dev/zero of=<Datenträger> bs=1 count=4 seek=440 conv=notrunc überschreibt die Datenträgersignatur mit Nullen, wodurch Windows dazu gebracht wird, eine neue Datenträgersignatur zu erzeugen.

Partitionstabelle[Bearbeiten]

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 zwei CHS-Adressen (die Start- und die Endadresse) sowie eine 32-Bit-lange LBA-Adresse und die 32-Bit-lange LBA-Partitionsgröße. Dadurch lassen sich mit herkömmlichen Partitionstabellen über CHS-Adressierung maximal etwas über 8 GB (ca. 7,8 GiB) große Datenträger und über LBA-Adressierung etwas über 2 TB (knapp 2 TiB) große Partitionen bzw. etwas über 4 TB (knapp 4 TiB) große Datenträger nutzen (wenn vom Betriebssystem unterstützt). Um größere Datenträger oder Partitionen ansprechen zu können, muss die Nachfolgetechnologie GUID Partition Table (GPT) genutzt oder die Sektorengröße vergrößert werden.

Aufbau der Partitionstabelle[Bearbeiten]

Beispiel-Partitionssektor. Die 4 Einträge der Partitionstabelle sind farblich gekennzeichnet, die 2 roten Byte am Ende sind die MBR-Signatur.
Offset *0 *1 *2 *3 *4 *5 *6 *7 *8 *9 *A *B *C *D *E *F
0000 eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0
0010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00
.  .  .
0190 61 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd
01a0 10 ac 3c 00 75 f4 c3 00 00 00 00 00 00 00 00 00
01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
01c0 01 00 83 fe ff ff 3f 00 00 00 41 29 54 02 00 fe
01d0 ff ff 82 fe ff ff 80 29 54 02 fa e7 1d 00 00 fe
01e0 ff ff 83 fe ff ff 7a 11 72 02 fa e7 1d 00 80 fe
01f0 ff ff 05 fe ff ff 74 f9 8f 02 0c 83 6c 04 55 aa

Wie unten erläutert, gibt es primäre und erweiterte Partitionstabellen. Ihr Aufbau ist identisch. Die Tabelle befindet sich an Byte 446 (1BEhex) des jeweiligen Sektors und hat maximal 4 Einträge à 16 Byte, sie ist also 64 Byte groß. Daran anschließend folgt die Magic Number, die aus den beiden Byte 55hex und AAhex in den Byte 510 (1FEhex) und 511 (1FFhex) des Sektors besteht.

Die nebenstehende Tabelle veranschaulicht die Lage der Partitionstabelle (innerhalb des Bootsektors). Die vier Partitionseinträge sind farblich hervorgehoben. Gelb, grün, cyan und blau sind die Einträge für die vier primären Partitionen. Die Signatur ist rot hinterlegt.

Ein solcher Eintrag ist wie folgt gegliedert:

Speicherplatzadresse
(Hexadezimal)
Größe
(Byte)
Inhalt
0x00 1 bestimmt ob Partition gestartet werden kann oder nicht
(80hex=bootfähig, 00hex=nicht bootfähig)
0x01 3 CHS-Eintrag des ersten Sektors
0x04 1 Typ der Partition (Partitionstyp)
0x05 3 CHS-Eintrag des letzten Sektors
0x08 4 Startsektor (relativ zum Anfang der Festplatte, oder zur erweiterten Partitionstabelle) per LBA-Methode
0x0C 4 Anzahl der Sektoren in der Partition per LBA-Methode

Unbenutzte Einträge sind mit Nullen gefüllt. Die Einträge sind im Little-Endian Format abgespeichert.

Die CHS-Einträge sind wie folgt kodiert:

Format des CHS-Eintrages

Dabei werden die Zylinder von 0 bis 1023, die Köpfe von 0 bis 254 und die Sektoren von 1 bis 63 gezählt.

Die Adressierung durch CHS (1024 Zylinder × 255 Heads × 63 Sektoren × 512 Bytes) erlaubt eine eindeutige Adressierung nur bei Festplatten bis ca. 8,4 GB bzw. 7,8 GiB. Bei solchen (vergleichsweise kleinen) Platten kann also eine Konvertierung von CHS nach LBA vorgenommen werden. Heutige Festplatten haben aber in der Regel deutlich größere Kapazitäten. Die CHS-Werte erhalten daher ihre Maxima vereinfacht mit „1023, 63, 254“, die tatsächliche Datenträgergröße wird jedoch durch das Logical Block Addressing (LBA) angegeben. Aus der Begrenzung der Sektorangabe im „IBM-PC-kompatiblen“ Partitionseintrag auf 32 Bit und der dort üblichen Sektorgröße von 512 Bytes ergibt sich eine maximale Partitionsgröße von knapp 2 TiB ((232−1) × 512 Bytes). Unterteilt man einen Datenträger in mehr als nur eine Partition und lässt die letzte Partition mit maximaler Partitionsgröße auf dem letzten LBA-Sektor beginnen, so lässt sich eine 4,4 TB (ca. 4 TiB) große Festplatte fast vollständig benutzen. Bedingung ist aber, dass die vorherige(n) Partition(en) in der Summe noch nicht an die 2 TiB–Grenze stoßen, der letzte adressierbare LBA-Sektor somit noch frei für die letzte Partition ist, weil sonst das Erstellen dieser letzten Partition fehlschlägt.

Ältere Betriebssysteme können Beschränkungen der Datenträgergröße aufweisen. Beispielsweise ist Microsoft Windows XP 32 auf knapp 2,2 TB ((232−1) × 512 Bytes) beschränkt. Ein größerer Datenträger wird auch im unpartitionierten Zustand mit falscher Größe ausgewiesen. Der ausgelöste Überlauf lässt den z. B. ca. 3 TB großen Datenträger nur ca. 800 GB groß scheinen. Schreibzugriffe könnten Datenverluste zur Folge haben.

Bei größeren logischen Sektorengrößen erhöhen sich diese Grenzen entsprechend (z.B. bei 4KB-Sektoren auf 32 TiB bzw. 16 TiB), allerdings können ältere Betriebssysteme wie z.B. Windows XP nur von Datenträgern mit 512-Byte-Sektoren booten.

Wichtige Partitionstypen mit ihren Kennnummern[Bearbeiten]

Der Eintrag an Offset 0x04 steht u. a. für:

Typbyte (hex) Bezeichnung
0x00 leer/unbenutzt
0x01 FAT12 (Floppy Disks)
0x04 FAT16 ≤ 32 MiB
0x05 erweiterte Partition
0x06 FAT16 > 32 MiB
0x07 NTFS (Windows NT/2000/XP/Vista/7/8), HPFS (OS/2) oder exFAT (diverse Betriebssysteme)
0x0B FAT32
0x0C FAT32 mit BIOS-Extensions (LBA)
0x0E FAT16 > 32 MiB mit BIOS-Extensions (LBA)
0x0F erweiterte Partition mit BIOS-Extensions (LBA)
0x12 OEM-Partition für Konfiguration, Diagnose, BIOS-Erweiterung (für Microsoft-Betriebssysteme unsichtbar)
0x27 Windows RE versteckte Partition
0x42 Dynamischer Datenträger
0x82 Linux Swap / Solaris 2.6 X86 bis Solaris 9 X86
0x83 Linux Native
0x8E Linux LVM
0xA5 FreeBSD
0xA6 OpenBSD
0xA9 NetBSD
0xEE Legacy MBR mit folgendem EFI-Header
0xEF EFI-Dateisystem

Primäre und Erweiterte Partitionstabelle[Bearbeiten]

Bei einem am PC partitionierten Medium wird die primäre Partitionstabelle vor der Signatur am Ende des ersten Sektors (Master Boot Record) abgelegt. Die Partitionen in der Partitionstabelle des MBR heißen Primärpartitionen. Eine einzige Partition im MBR kann jedoch auch als erweitert (extended, Typ 5 oder Fhex) markiert sein. Diese verweist dann im Eintrag Startsektor auf die erste erweiterte Partitionstabelle.

Diese befindet sich im ersten Sektor der erweiterten Partition. Jede erweiterte Partitionstabelle definiert genau eine logische Partition und verweist bei Bedarf auf die nächste erweiterte Partitionstabelle. Die erweiterten Partitionstabellen funktionieren nach dem Prinzip der verketteten Liste, daher sind hinter den primären Partitionen beliebig viele logische Partitionen möglich. Als Länge des Eintrags der Typ 5-Partition im MBR ist die Summe aller verketteten logischen Partitionen eingetragen. Da immer ein Sektor von der erweiterten Partitionstabelle eingenommen wird, können erweiterte und logische Partition nicht exakt gleich groß sein.

In einer erweiterten Partitionstabelle werden somit maximal die ersten zwei Einträge benutzt. Die Startsektoren werden hier nicht mehr relativ zum Anfang der Festplatte angegeben:

  • Der erste Eintrag beschreibt die logische Partition. Dessen Startsektor wird immer relativ zur Position der aktuellen Partitionstabelle angegeben.
  • Der zweite Eintrag kann eine Verkettung zu einer weiteren erweiterten Partitionstabelle enthalten und hat immer den Typ 5. Im Startsektor dieses Eintrags wird immer relativ zum Sektor der ersten erweiterten Partition verwiesen.

Alte Betriebssysteme erwarten den Start einer Partition immer an den Zylindergrenzen. Daher ergibt sich auch heute noch bei verbreiteten Betriebssystemen eine Lücke von 63 Sektoren zwischen erweiterter Partitionstabelle und dem Startsektor der entsprechenden logischen Partition. Diese Sektoren in der Lücke können z. B. für einen Bootmanager oder zum Verstecken von „geheimen“ Daten, aber auch von Bootsektorviren verwendet werden. Auch wurde dort früher eine BIOS-Erweiterung untergebracht, um auch Festplatten mit mehr als 8 GiB zu unterstützen, falls das BIOS des Mainboards dazu nicht imstande war.

Aufgrund der Entwicklung hin zu 4-kiB-Sektoren ist aber ein Alignment auf 63 Sektoren äußerst ungünstig. Daher wird neuerdings eine Lücke von 64 verwendet. Auch andere Zweierpotenzen sind gängig.

MBR-Signatur[Bearbeiten]

Die MBR-Signatur (auch Magische Zahl 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.[15] 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. eines neuen Datenträgers empfiehlt sich daher, zunächst den MBR der betreffenden Platte zu initialisieren.[16]

MBR verschiedener Betriebssysteme[Bearbeiten]

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[Bearbeiten]

Unter DOS kann der MBR bei nicht partitionierten Datenträgern mit dem zu DOS gehörigen debug angesehen und bearbeitet werden. Wenn der Datenträger dagegen partitioniert ist, so kann mit debug nur der Boot-Sektor (Boot Record) der jeweiligen Partition angesehen werden. Um auf den MBR zuzugreifen, wird ein Diskeditor (wie z. B. Diskedit.exe, PTEdit.exe etc.) benötigt. MS-DOS und die auf MS-DOS aufbauenden Windowsvarianten (Windows 95 bis Windows Me) überschreiben den Bootloader im MBR bei der Installation ohne Rücksicht auf seinen bisherigen Inhalt.

Im Falle eines Fehlers im MBR kann unter DOS mit dem undokumentierten Befehl fdisk /mbr ein neuer Standard-Masterbootrecord geschrieben werden. Dabei wird der gesamte MBR mit Ausnahme der Partitionstabelle überschrieben, wodurch Bootviren entfernt werden können, sofern das Virus nicht den Schreibzugriff auf den Master Boot Record erkennt und abfängt.[17] Allerdings wird bei diesem Vorgehen auch ein eventuell vorhandener Bootmanager entfernt, da seine Anweisungen durch den Standard-Code von MS-DOS überschrieben werden.

Windows NT bis Windows XP[Bearbeiten]

Einige Microsoft-Windows-Versionen der NT-Linie, u. a. XP, nicht jedoch NT 4 und 2000, überschreiben den Bootloader (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 (mit Ausnahme der Datenträgersignatur) und fixboot zur Reparatur des Bootsektors einer Partition (beide fix-Befehle nur für x86-Systeme).

Microsoft Windows Vista und 7[Bearbeiten]

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-System-Partition liegt oder direkt auf der Systempartition bei BIOS-Systemen. Im Bootprozess vergleicht BOOTMGR die Datenträgersignatur (Bytes 440–443 im MBR) mit seinen gespeicherten Booteinträgen aus der BCD-Datei. Wurde die Datenträgersignatur 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.[18] Alternativ kann beim Booten von der Windows-CD über den Punkt „Computer reparieren/Systemwiederherstellungsoptionen“ das Tool bootrec.exe in der Eingabeaufforderung aufgerufen werden. bootrec /fixmbr schreibt einen neuen MBR, bootrec /fixboot einen neuen Startsektor in die Systempartition.[19]

Linux (und einige UNIX-Varianten)[Bearbeiten]

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, OS X oder Windows) zu starten.

GRUB[Bearbeiten]

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 des Datenträgers, 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[Bearbeiten]

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[Bearbeiten]

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-Datenträger) 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 darf 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[Bearbeiten]

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, 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 nicht GPT-kompatiblen älteren Windows-Versionen auf Intel-basierten Macs erlaubt. Auch die EFI-Applikation rEFIt kann mit dem Programm gptsync GPT und MBR-Partitionstabelle synchronisieren.

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatDaniel B. Sedory: Technical Notes on Preserving, Running and Studying IBM® Personal Computer™ DOS Versions 1.00 (1981) and 1.10 (1982). In: The Starman’s Realm. 25-09-2005, abgerufen am 24. Februar 2013 (englisch).
  2. What is Partition Boot Sector? In: Resource. CHENGDU Yiwo® Tech Development Co., Ltd. (EaseUS), abgerufen am 24. Februar 2013 (englisch, Achtung: dient nur als Beispiel für die Verwendung ungenauer Bezeichnungen).
  3. The Boot Process. 4. Looking for the Operating System. In: Bios Central. Bob Hurt, abgerufen am 24. Februar 2013 (englisch, Achtung: falsche Aussage –): „Once POST is complete and no errors found, the BIOS will begin searching for an operating system.
  4. The Master Boot Record (MBR) and Why it is Necessary? In: Knowledge Center. DEW Associates Corporation, abgerufen am 13. Juli 2013 (englisch, lesenswerte Analyse des Startvorgangs inklusive der Rolle des Master Boot Record).
  5. ThinkPad T60Service und Fehlerbehebung (PDF; 1,6 MB), Lenovo, zugriff: 24. Juni 2013
  6. freedesktop.org Bug #24999: Hide Compaq recovery partition type 0x12 (englisch)
  7. The Compaq System Partition (english)
  8. Deskpro BIOS... (englisch), Foreneintrag auf alt.sys.pc-clone.compaq vom 26. September 2005
  9. Rod Smith: Legacy BIOS Issues with GPT. In: GPT fdisk Tutorial. 16. April 2013, abgerufen am 13. Juli 2013 (englisch, siehe Abschnitt Causes of Incompatibility).
  10. Launchpad: Operating System not found (englisch) vom 4. Februar 2010, abgerufen am 5. Februar 2014
  11. Microsoft Knowledge Base: Windows-Unterstützung für große IDE-Festplatten
  12. Windows May Use Signature() Syntax in the Boot.ini File. bzw. Windows 2000 verwendet Syntax „Signature()“ in Datei „Boot.ini“. Microsoft Knowledge-Base, Artikel 227704
  13. Systemkopie bootet nicht. In: c’t, 3/2006, S. 180.
  14. Karsten Violka: Festplatten-ABC. Laufwerksbuchstaben unter Windows XP und 2000 bändigen. In: c’t, 9/2005, S. 184.
  15. Boot Record Signature AA55 Not Found. bzw. MBR-Signatur AA55 wird nicht gefunden. Microsoft Knowledge Base, Artikel 149877
  16. Wundersame Plattenbeschleunigung. In: c’t, 19/1998, S. 218
  17. FDISK /MBR rewrites the Master Boot Record. bzw. FDISK /MBR überschreibt Master Boot Record. Microsoft Knowledge Base, Artikel 69013
  18. Multibooters - Dual/Multi Booting With Vista bootmgr and BCD und Disk Signature
  19. Beheben und Reparieren von Startproblemen mit dem Hilfsprogramm bootrec.exe. Microsoft Knowledge-Base, Artikel 927392