Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Master Boot Record

Der Master Boot Record (kurz MBR) enthält ein Startprogramm für BIOS-basierte Computer (IBM-PC-kompatible Computer) und eine Partitionstabelle.

Inhalt5 Abschnitte
  1. 1. Grundidee und Bedeutung
  2. 2. Aufbau und Startvorgang
  3. 3. Partitionstabelle und Adressierung
  4. 4. Primäre, erweiterte und wichtige Partitionstypen
  5. 5. Betriebssysteme, Sicherung und EFI

Grundidee und Bedeutung

Der Master Boot Record (MBR) ist der erste Sektor eines Speichermediums, das in Partitionen aufgeteilt werden kann, etwa einer Festplatte, eines USB-Sticks, einer Speicherkarte oder einer externen Festplatte. Er ist 512 Bytes groß und enthält bei startfähigen Datenträgern zwei wesentliche Bestandteile: ein Startprogramm und eine Partitionstabelle.

Das Startprogramm wird von einem BIOS auf IBM-PC-kompatiblen, BIOS-basierten Computern geladen und im 8086-kompatiblen 16-Bit-Modus „Real Mode“ ausgeführt. Es wertet die Partitionstabelle aus und startet anschließend den Bootsektor der ersten aktiven Partition. Dieses Verfahren heißt Chainloading: Der MBR lädt den eigentlichen Bootloader, der sich im ersten Sektor der als aktiv markierten Partition befindet.

Das Konzept aus Startprogramm und Partitionstabelle wurde 1983 mit dem IBM PC XT und MS-DOS/PC DOS 2.0 eingeführt. Der MBR wurde zum De-facto-Standard für Speichermedien und wird auch als PC-Partitionsschema bezeichnet. Seit ca. 2010 wird bei großen Speichermedien von mehr als 2 TiB zunehmend die GUID-Partitionstabelle (GPT) verwendet, die als Nachfolger des MBR entwickelt wurde.

Historisch erwartete das BIOS zunächst an der Position CHS 0:0:1 den 512 Bytes großen Bootsektor und führte ihn aus. Mit dem IBM PC XT kamen 1983 Festplatten und unterschiedliche Diskettenformate hinzu. PC DOS 2.0 führte deshalb für Disketten den Volume Boot Record (VBR) mit einem BIOS Parameter Block (BPB) ein. Für Festplatten wurde der MBR geschaffen, der eine Aufteilung in mehrere Partitionen ermöglichte. Die BIOS-Kompatibilität blieb erhalten, indem das BIOS weiterhin nur den ersten Sektor laden musste; die Partitionierungsstruktur musste es nicht selbst kennen.

Synonyme für MBR sind „Partition Boot Sector“, „partition sector“ beziehungsweise „Partitionssektor“ sowie „Master Boot Sector“.

Aufbau und Startvorgang

Der MBR ist folgendermaßen aufgebaut:

  • Byte 0 bis 439: Startprogramm beziehungsweise Programmcode, insgesamt 440 Bytes.
  • Byte 440 bis 443: Datenträgersignatur, seit Windows 2000, 4 Bytes.
  • Byte 444 bis 445: zwei Nullbytes (0x0000).
  • Byte 446 bis 509: Partitionstabelle, 64 Bytes.
  • Byte 510 und 511: Bootsektor-Signatur 55 hex und AA hex, insgesamt 2 Bytes.

Beim normalen Starten liest das BIOS den ersten Sektor eines angeschlossenen Speichermediums und führt ihn aus. Der Master Boot Code von MS-DOS/PC DOS 2.0 sucht in der Partitionstabelle nach sichtbaren und aktiven Partitionen. Er lädt den Bootsektor der ersten aktiven Partition und führt ihn aus; dieser startet danach das eigentliche Betriebssystem.

Im Allgemeinen sucht nicht das BIOS selbst nach der aktiven Partition. Manche Hersteller-BIOS-Versionen besitzen jedoch zusätzliche Funktionen, etwa Auswahlmenüs oder das Nachladen herstellerspezifischer Programme aus speziellen Partitionen. Beispiele sind die Servicepartition auf vielen ThinkPad-Laptops von IBM/Lenovo und eine spezielle DOS-Partition vom Typ 0x12 bei vielen Compaq-Modellen.

Das MBR-Startprogramm kann durch Bootmanager oder Disk Manager ersetzt beziehungsweise erweitert werden. Bootmanager zeigen beispielsweise ein Auswahlmenü und ermöglichen das Starten beliebiger Partitionen. Disk Manager sollen unter anderem BIOS-Beschränkungen durch Geometrieumsetzung umgehen und Logical Block Addressing bereitstellen. Solche Programme verwenden häufig eine eigene Partition oder einen reservierten, unpartitionierten Bereich. Auch Bootviren nutzen den MBR-Bootloader, um vor dem Betriebssystem aktiv zu werden.

Ein fehlender oder beschädigter Bootloader verhindert den Start vom Datenträger, selbst wenn eine Partition einen intakten Bootsektor besitzt. Das gilt auch, wenn zusätzlich benötigte Bootloader-Dateien fehlen oder beschädigt sind. Auf manchen BIOS-Versionen müssen außerdem eine gültige Partitionstabelle und eine aktive Primärpartition mit Bootsektor vorhanden sein. Dadurch können beispielsweise GPT-Datenträger oder Betriebssysteme ohne MBR-Unterstützung nicht starten.

Die Bootsektor-Signatur besteht aus den beiden Bytes 55 hex und AA hex; auf Little-Endian-Systemen wird sie als 16-Bit-Zahl AA55 hex interpretiert. Das BIOS erkennt daran einen vermutlich gültigen Bootsektor. Fehlt die Signatur, wird der Start meist mit einer Meldung wie „Non-System or Non-Bootable Disk“ abgebrochen. Die Signatur beweist jedoch nicht, dass funktionierender Boot-Code vorhanden ist. Einige BIOS-Versionen betreiben Datenträger ohne gültige Signatur außerdem in einem langsameren Modus.

Partitionstabelle und Adressierung

Die Partitionstabelle beschreibt die Partitionen eines Datenträgers. Sie beginnt bei Byte 446 (1BE hex) und ist höchstens 64 Bytes groß. Sie enthält maximal vier Einträge mit jeweils 16 Bytes. Jeder Eintrag ist im Little-Endian-Format gespeichert und enthält:

  • Offset 0x00, 1 Byte: Startstatus; 80 hex bedeutet bootfähig, 00 hex nicht bootfähig.
  • Offset 0x01, 3 Bytes: CHS-Adresse des ersten Sektors.
  • Offset 0x04, 1 Byte: Partitionstyp.
  • Offset 0x05, 3 Bytes: CHS-Adresse des letzten Sektors.
  • Offset 0x08, 4 Bytes: Startsektor relativ zum Anfang der Festplatte oder zur erweiterten Partitionstabelle, angegeben mit LBA.
  • Offset 0x0C, 4 Bytes: Anzahl der Sektoren der Partition, ebenfalls mit LBA angegeben.

Nicht verwendete Einträge sind mit Nullen gefüllt. Die Partitionstabelle befindet sich unmittelbar vor der Bootsektor-Signatur 55 hex AA hex. Ist sie beschädigt oder fehlt sie, ist der Zugriff auf die Partitionen nicht ohne Weiteres möglich. Programme wie TestDisk können sie in vielen Fällen wiederherstellen.

CHS bedeutet Cylinder-Head-Sector und beschreibt einen Sektor durch Zylinder, Kopf und Sektor. Im MBR werden Zylinder von 0 bis 1023, Köpfe von 0 bis 255 und Sektoren von 1 bis 63 gezählt. Damit sind maximal 8.455.716.864 Bytes adressierbar, also knapp 8,5 GB beziehungsweise 7⅞ GiB. Die CHS-Werte sind bei großen modernen Datenträgern häufig nur Fantasiewerte zur Rückkompatibilität; die tatsächliche Größe wird durch Logical Block Addressing (LBA) angegeben.

Weil die Längenangabe eines Partitionseintrags auf 32 Bit begrenzt ist und Sektoren lange üblicherweise 512 Bytes Nutzdaten enthielten, beträgt die maximale Partitionsgröße fast 2 TiB: (2³² − 1) Blöcke × 512 Bytes pro Block. Theoretisch lassen sich durch mehrere Partitionen die ersten knapp 4,4 TB (4 TiB − 1 KiB) eines Datenträgers nutzen. Dafür darf die vorletzte Partition die 2-TiB-Grenze nicht erreichen, weil mindestens der letzte 32-bit-adressierbare Block für die letzte Partition frei bleiben muss.

Bei größeren logischen Blockgrößen steigen die Grenzen, etwa bei 4-KiB-Sektoren auf fast 32 beziehungsweise 16 TiB. Ältere Betriebssysteme haben jedoch eigene Einschränkungen: Windows XP ist auf knapp 2,2 TB beziehungsweise 2 TiB beschränkt und kann nur von Datenträgern mit 512(e)-Byte-Sektoren booten. Bei größeren Datenträgern kann ein Überlauf zu falschen Größenangaben und Datenverlust durch Schreibzugriffe führen.

Primäre, erweiterte und wichtige Partitionstypen

Die bis zu vier Partitionseinträge im MBR werden Primärpartitionen genannt. Einer dieser Einträge kann stattdessen eine erweiterte Partition (Typ 05 oder 0F hex) beschreiben. Sie verweist auf die erste Erweiterte Partitionstabelle (EBR), die sich im ersten Sektor der erweiterten Partition befindet.

Jede EBR beschreibt genau eine logische Partition und kann zusätzlich auf die nächste EBR verweisen. Die EBRs bilden damit eine verkettete Liste, sodass nach den primären Partitionen beliebig viele logische Partitionen möglich sind. In einer EBR werden höchstens die ersten beiden Einträge verwendet: Der erste beschreibt die logische Partition mit einem Startsektor relativ zur aktuellen Partitionstabelle; der zweite verweist immer mit Typ 5 auf die nächste EBR. Die Länge des Typs-5-Eintrags im MBR umfasst die Summe aller verketteten logischen Partitionen. Da eine EBR einen Sektor benötigt, können erweiterte Partition und logische Partition nicht exakt gleich groß sein.

Ältere Betriebssysteme erwarteten Partitionsanfänge an Zylindergrenzen. Deshalb gab es häufig eine Lücke von 63 Sektoren zwischen EBR und logischer Partition. Sie konnte für Bootmanager, versteckte Daten, Bootsektorviren oder früher für BIOS-Erweiterungen zur Unterstützung von Festplatten über 8 GiB genutzt werden. Wegen der Entwicklung zu 4-KiB-Sektoren ist diese Ausrichtung ungünstig; neuerdings wird deshalb eine Lücke von 64 Sektoren verwendet, auch andere Zweierpotenzen sind üblich.

Wichtige Typbytes sind unter anderem: 01 beziehungsweise 11 hex für FAT12 bis 16 MB, 04 beziehungsweise 14 hex für FAT16 bis 32 MiB, 06 beziehungsweise 16 hex für FAT16 über 32 MiB, 0B für FAT32 mit CHS und 0C für FAT32 mit LBA. Typ 07 steht für NTFS, HPFS oder exFAT; 82 für Linux Swap beziehungsweise ältere Solaris-x86-Partitionen; 83 für Linux Native mit Dateisystemen wie ext2, ext4 oder Btrfs; 8E für Linux LVM; FD für Linux-RAID; A5 für FreeBSD und MidnightBSD; A6 für OpenBSD; A9 für NetBSD; AF für macOS-Partitionen mit HFS, HFS+ oder APFS; BF für Solaris mit UFS oder ZFS; EB für BeOS oder Haiku. Typ 12 bezeichnet eine OEM-Partition für Konfiguration, Diagnose oder BIOS-Erweiterung, Typ 27 Windows RE, Typ 42 dynamische Datenträger ab Windows 2000, Typ 84 Intel Rapid Start und Typ EE den Schutz-MBR einer GPT. Typ EF bezeichnet bei einem Hybrid-MBR eine EFI-Partition.

Betriebssysteme, Sicherung und EFI

DOS und Windows 9x (Windows 95 bis Windows Me) schreiben den Master Boot Code bei der Erstellung einer Partitionstabelle mit fdisk und überschreiben den vorhandenen MBR bei der Installation ohne Rücksicht auf seinen bisherigen Inhalt. Der DOS-Befehl fdisk /mbr schreibt bei einem Fehler einen neuen Standard-Masterbootrecord. Dabei bleibt die Partitionstabelle erhalten, der übrige MBR wird jedoch überschrieben; ein vorhandener Bootmanager wird dadurch entfernt.

Einige NT-basierte Windows-Versionen bis XP überschreiben bei einer Neuinstallation ebenfalls die ersten 446 Bytes, berücksichtigen aber vorhandene Informationen zu älteren Microsoft-Systemen. Der NTLDR kann dann ein Auswahlmenü für mehrere installierte Microsoft-Betriebssysteme erhalten. Für Windows 2000, Windows XP und Windows Server 2003 dienen fixmbr zur Reparatur des MBR und fixboot zur Reparatur des Partitionsbootsektors; beide Befehle gelten nur für x86-Systeme.

Vista und Windows 7 starten aus dem Bootsektor den Bootmanager BOOTMGR statt des bei NT/XP verwendeten ntldr. BOOTMGR liest seine Startinformationen aus der Binärdatei \Boot\BCD, die strukturell einem Registry Hive entspricht, nicht aus boot.ini. BCDEdit.exe ist das umfassende Microsoft-Werkzeug zur Bearbeitung der BCD; alternativ kann EasyBCD eine grafische Oberfläche bieten. Über die Windows-Reparaturoptionen kann bootrec.exe verwendet werden: bootrec /fixmbr schreibt einen neuen MBR, bootrec /fixboot einen neuen Startsektor in die Systempartition.

Linux-Distributionen und Solaris installieren meist GRUB, seltener LILO, SYSLINUX oder andere Bootloader. GRUB kann unter anderem Linux, BSD, macOS und Windows starten. Bei GRUB Legacy lädt Stage 1 aus dem MBR die Stage 2. Je nach Eintrag wird sie direkt über ihren Datenträgersektor geladen oder zunächst über die Stage 1.5, einen Dateisystemtreiber im Bootsektor einer Partition. Stage 2 liegt normalerweise in /boot/grub/stage2, liest /boot/grub/menu.lst oder /boot/grub/grub.cfg, zeigt ein Bootmenü und lädt einen Kernel oder den Bootloader eines anderen Betriebssystems. Bei LILO werden die zum Booten erforderlichen Daten direkt in den MBR geschrieben; deshalb muss nach Änderungen am Kernel oder an Bootoptionen ein neuer MBR erzeugt werden.

Unter Linux kann der MBR einschließlich Partitionstabelle mit dd if=/dev/hda of=mbr_backup bs=512 count=1 gesichert und mit dd of=/dev/hda if=mbr_backup conv=notrunc wiederhergestellt werden. Eine solche vollständige Sicherung stellt auch eine zwischenzeitlich geänderte Partitionierung wieder her. Das vollständige Überschreiben mit dd if=/dev/zero of=/dev/sdx bs=512 count=1 conv=notrunc löscht Bootcode und Partitionstabelle; mit bs=440 wird nur der eigentliche Bootcode überschrieben.

Windows 2000 und XP verwenden die vier Bytes der Datenträgersignatur, um klassische Datenträger eindeutig zu identifizieren. Sie beeinflusst unter anderem die Zuordnung von Laufwerksbuchstaben, die in Registry-Schlüsseln wie HKLM\SYSTEM\MountedDevices gespeichert wird. Doppelte Signaturen, etwa bei bitweisen Kopien, oder veränderte Signaturen können dazu führen, dass kein Laufwerksbuchstabe vergeben wird oder der Bootvorgang scheitert. fixmbr lässt die Signatur unverändert, fdisk /mbr frischt sie auf.

Bei EFI-basierten Computern wird anstelle der MBR-Partitionstabelle normalerweise GPT verwendet. Jede GPT enthält aus Kompatibilitätsgründen einen Schutz-MBR, der den gesamten Speicher durch eine einzige Partition belegt erscheinen lässt und so ein versehentliches Überschreiben der GPT verhindern soll. Bei aktiviertem CSM kann ein MBR-basiertes Betriebssystem auf EFI-Systemen installiert werden. Werden GPT-Partitionen zusätzlich in der MBR-Tabelle abgebildet, heißt die Konfiguration Hybrid-MBR. Apple nutzte sie beispielsweise mit Boot Camp für Windows im nicht-GPT-kompatiblen BIOS-Modus auf Intel-Macs; rEFIt und rEFInd können mit gptsync beide Partitionstabellen synchronisieren.

Weiterlesen

Datenspeicher Chemo-optische Speicher, die durch einen chemischen Prozess Daten in Form von Lichtbildern (statischen und bewegten Bildern sowie Lichtton) speichern. Die … Festplatte Unter einer Festplatte versteht man einen Bestandteil der Hardware, der der dauerhaften Speicherung digitaler Daten dient, was auf der Ebene der … GUID Partition Table GUID Partition Table. Standard für das Format von Partitionstabellen auf Festplatten oder anderen Datenträgern. Artikel · Diskussion. Partition (Datenträger) Als Partition (lateinisch partitio ‚(Ein)teilung') werden die zusammenhängenden, aufeinanderfolgenden Datenblöcke eines Teils eines Volumes bezeichnet. Festplattenlaufwerk Ein Festplattenlaufwerk (englisch hard disk drive, Abkürzung HDD), früher auch Festplatten-Speichersystem oder Festplatten-System, oft auch als Festplatte … Maschinensprache Mit einem Assembler: Assemblersprachen formulieren die Prozessorbefehle des Maschinencodes als Mnemonics in einer einfachen Syntax. Dieser Quelltext wird … File Allocation Table Bei Dateisystemen ab 32 GB ist die Standard-Clustergröße 128 KB. Das bedeutet, dass selbst kleine Dateien immer mindestens 128 KB Platz auf dem Dateisystem … BIOS Als BIOS (IPA: [ˈbaɪɔs],) – von englisch basic input/output system – wird im Allgemeinen die Firmware eines Personal Computer bezeichnet („PC-Firmware“), … Betriebssystem Betriebssysteme bestehen in der Regel aus einem Kernel (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start … Booten Der Bootprozess eines Computers verläuft in mehreren Stufen. Nach dem Einschalten wird zunächst ein einfaches Programm aus einem kleinen Festwertspeicher (ROM) … E-Mail Die oder das E-Mail (englisch [ˈiːmeɪl], im Deutschen kurz Mail; englisch electronic mail für „elektronische Post“ oder „elektronischer Brief“) ist zum … ATA/ATAPI AT Attachment (kurz ATA) ist ein Standard für die parallele Datenübertragung zwischen Datenspeichern bzw. Laufwerken und der entsprechenden …