- Bootsektor
-
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 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.
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 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 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.[2]
Der Befehl
fixmbr
in der Wiederherstellungskonsole lässt die Signatur unverändert. Dagegen frischt der Befehlfdisk /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 mitdebug
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
Die Microsoft-Windows-Versionen der NT-Linie (z. B. NT 4, 2000 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 ä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 und XP gibt es die Wiederherstellungskonsole, hier dient der Befehl
fixmbr
zur Reparatur des MBR undfixboot
zur Reparatur des Bootsektors einer Partition (nur für x86-Systeme).Microsoft Windows Vista
Im Gegensatz zu älterern NT basierten Windows Systemen startet Vista aus dem MBR-Code den Bootloader "bootmgr" (unter NT/XP war dies "ntldr"). Bootmgr entnimmt die Informationen zum bootenden Betriebssystem nicht der (einfach editierbaren Textdatei) boot.ini, sondern speichert diese Informationen in der Datei \Boot\BCD (auf Extensible Firmware Interface-Systemen \EFI\Microsoft\Boot\Bootmgfw.efi). Im Bootprozess überprüft der Bootloader die Disk-Signatur (Bytes 440-443 im MBR) mit seinen gespeicherten Booteinträgen aus der BCD-Datei. Wurde die Disk Signatur verändert (z.B. beim Imaging) verweigert Vista 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 bearbeiten werden. Zur Bearbeitung des BCD-Datei gibt es ein eigenes Tool mit dem Namen bcdedit. Es kann in einem laufenden Vista (oder von einer entsprechenden Vista-PE CD) an der Kommandozeile aufgerufen werden. Alternativ kann man beim Booten von der Vista CD das Tool über den Punkt Repair your computer/Startup Repair das Tool bootrec aufrufen. [7]
Linux
Linux-Distributionen installieren meist auf Anfrage einen „intelligenten“ Bootmanager, der auch fremde Betriebssysteme (z. B. Microsoft 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 zum Beispiel mit dem Befehldd if=/dev/hda of=datei bs=512 count=1
(/dev/hda für E-IDE/ ATA; /dev/sda für SCSI-/ S-ATA-Festplatten) in eine Datei schreiben. Zum Wiederherstellen genügt analogdd of=/dev/hda if=datei bs=512
. (Achtung: Dabei wird auch die Partitionstabelle überschrieben. Dies kann zu Datenverlusten führen, wenn nach der Sicherung des MBR die Partitionierung geändert wurde. Mit den Parameternbs=446 count=1
bleibt die Partitionstabelle erhalten.) Steht keine entsprechende Sicherungsdatei zur Verfügung, kann der MBR beispielsweise mittels des Bootloaders Linux Loader (LILO) mit folgendem Befehl neu und „leer“ geschrieben werden:lilo -M /dev/hda -s /dev/null
.MBR bei EFI-basierten Computern
Bei EFI-basierten Computern kommt statt der MBR-Partitionstabelle die neuere GUID Partition Table (GPT) zum Einsatz. Aus Gründen der Abwärtskompatibilität enthält jede GPT ein sogenanntes Schutz-MBR. Dieses 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. Dieses 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
- ↑ 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“.
- ↑ c’t-Hotline (kav): Systemkopie bootet nicht. in c’t 3/2006, S. 180.
- ↑ Karsten Violka: Festplatten-ABC. Laufwerksbuchstaben unter Windows XP und 2000 bändigen. in c’t 9/2005, S. 184.
- ↑ Microsoft Knowledge Base, Artikel 149877: Boot Record Signature AA55 Not Found. bzw. MBR-Signatur AA55 wird nicht gefunden.
- ↑ c’t Hotline: Wundersame Plattenbeschleunigung. In c’t 19/1998 S. 218
- ↑ Microsoft Knowledge Base, Artikel 69013: FDISK /MBR rewrites the Master Boot Record. bzw. FDISK /MBR überschreibt Master Boot Record.
- ↑ Multibooters - Dual/Multi Booting With Vista bootmgr and BCD und Disk Signature
Siehe auch
-
Wikimedia Foundation.