Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Master Boot Record

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

DerMaster Boot Record (kurzMBR) enthält einStartprogramm fürBIOS-basierte Computer (IBM-PC-kompatible Computer) und einePartitionstabelle.[1] Er befindet sich im erstenSektor eines in Partitionen aufteilbarenSpeichermediums wie beispielsweise einerFestplatte. Das Konzept aus Startprogramm und Partitionstabelle wurde 1983 mit demIBM PC XT und MS-DOS/​PC DOS 2.0 eingeführt. Als Partitionstabelle hat sich derMBR alsDe-facto-Standard für Speichermedien aller Art, z. B.USB-Sticks,Speicherkarten oderexterne Festplatten, etabliert und wird auch alsPC-Partitionsschema bezeichnet.

Seit ca. 2010[2] wird bei großen Speichermedien (> 2 TiB) zunehmend dieGUID-Partitionstabelle (GPT-Partitionsschema) verwendet, die auch als Nachfolger für den MBR entwickelt wurde.

Historische Entwicklung

[Bearbeiten |Quelltext bearbeiten]

Als derIBM 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-KiB-Disketten-Laufwerke. Das mitgelieferte BetriebssystemPC DOS 1.0 (MS-DOS 1.14) konnte dann auch nur mit dieser speziellen Konfiguration umgehen.

DasBIOS, eine Neuentwicklung für den IBM PC, erwartete an PositionCHS 0:0:1 (Spur 0, Kopf 0, Sektor 1) den 512 Bytes großenBootsektor, 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-KiB-Speichermedien mit 8 Sektoren pro Spur.[3]

Mit Erscheinen desIBM PC XT 1983 wurden neuere Diskettenlaufwerke und erstmals auch eineFestplatte 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 derVolume Boot Record (VBR) eingeführt, der einenBIOS Parameter Block (kurz BPB) für die unterschiedlichen Diskettenformate enthält und vomCode im VBR ausgewertet wird. Somit konnten auch Disketten mit 9 Sektoren pro Spur für die neuen 360-KiB-Laufwerke verwendet werden, und weitere zukünftigeDiskettengeometrien wurden dadurch ermöglicht. Für die Festplatte wurde derMaster Boot Record eingeführt, der nun eine Einteilung in mehrere Bereiche erlaubte. Die Bereiche wurdenPartitionen genannt, der Vorgang des Einteilenspartitionieren. Die Partitionen haben feste Größen, sodass es passieren konnte, dass eine Partition voll wurde, aber auf anderen noch freier Platz war. Ebenfalls mit der Einführung von Festplatten wurde die Möglichkeit geschaffen, Dateien innerhalb jeder Partition in Bereiche abzulegen, dieVerzeichnisse genannt wurden. Später wurden die Verzeichnisse auchOrdner genannt. Diese Bereiche stellen keine festen Grenzen dar. Ist ein Verzeichnis voll, so ist zugleich die Partition voll. Zur Unterscheidung von Dateinamen wurde den Verzeichnisnamen ein umgekehrter Schrägstrich vorangestellt, derBackslash („\“). (SieheFAT-Dateisystem). Weiterhin war es möglich, in Verzeichnissen weitere Verzeichnisse abzulegen, die dannUnterverzeichnisse genannt wurden.

Aus Kompatibilitätsgründen wurde die Konvention beibehalten, den Bootsektor in den Speicher zu laden und auszuführen. Und zwar auch bei Datenträgern mit mehreren Partitionen. Dazu wurde der Bereich für das ausführbare Programm leicht gekürzt und der frei gewordene Teil am Ende durch die Partitionstabelle ersetzt. Die Funktion desBootloaders ist derart modifiziert, dass derProgrammcode im MBR zunächst nur die enthaltenePartitionstabelle auswertet und imChainloading-Prinzip den eigentlichen Bootloader lädt und ausführt, der sich im ersten Sektor derjenigen Partition befindet, die als aktiv markiert ist. Die System-Firmware (dasBIOS) des Computers braucht daher die Struktur mit den Partitionen nicht zu kennen und kann wie bisher das Programm im ersten Sektor der Festplatte ausführen.

Funktionen

[Bearbeiten |Quelltext bearbeiten]

DerMaster Boot Record (MBR) besteht beistartfähigen Datenträgern aus zwei Teilen:

  1. einemStartprogramm (englischBootstrap Code) – jenes Programm imBootsektor, das imChainloading-Prinzip den Bootloader einesBetriebssystems auf einer der Partitionen startet.
  2. einerPartitionstabelle – in diesem Zusammenhang wird auch oft von einemPartitionssektor (englischpartition sector) gesprochen.

AufIBM-PC-kompatiblen Computern wird die Partitionstabelle im Normalfall vom Startprogramm ausgewertet – dieses übernimmt die Funktion einesBootloaders für BIOS-basiertex86-Computer.

Auf Datenträgern, von denen kein Betriebssystem gestartet werden kann oder soll, wird von einem bereits laufenden System nur die Partitionstabelle verwendet – ein eventuell vorhandenes Startprogramm wird dabei nicht genutzt. Dies ist zum Beispiel der Fall, wenn ein USB-Stick, der eine MBR-Partitionstabelle enthält, an einem Computer oder einem anderen Gerät mit USB-Schnittstelle verwendet wird.

Bei derGUID-Partitionstabelle (englischGUID Partition Table, GPT), die bei modernen Systemen zunehmend den MBR als dessen Nachfolger ersetzt, wird der aus Kompatibilitätsgründen enthaltene MBR zum Schutz mit einer den gesamten Speicherbereich belegenden Partition erstellt, damit die in den darauffolgenden Datenblöcken vorhandene GUID-Partitionstabelle und die darin definierten Partitionen nicht unbeabsichtigt überschrieben werden (protective MBR).

Startvorgang (Booten)

[Bearbeiten |Quelltext bearbeiten]

Um mit dem historischenIBM PC kompatibel zu bleiben, wird von einem BIOS im Zuge desStartens (englischBooten) normalerweise der erste Sektor eines angeschlossenen Speichermediums gelesen und ausgeführt. Dieser Sektor wird daher auch alsBootsektor bezeichnet. BeimMaster Boot Record übernimmt das Startprogramm die Kontrolle, indem es die Partitionstabelle auswertet und ein ausgewähltes Betriebssystem startet. Im Standard-MBR von MS-DOS/​PC DOS 2.0 ist dies derMaster Boot Code, der die erste aktive (als bootfähig gekennzeichnete) Partition findet und anschließend den Bootsektor dieser Partition ebenfalls lädt und ausführt.[4]

Im Allgemeinen ist es daher nicht das BIOS, das die aktive Partition sucht und den Bootsektor (VBR) dieser Partition startet.[5] 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 derThinkPad-Reihe in Form einer „Servicepartition“, deren Programme direkt aus dem BIOS heraus gestartet werden können.[6] Bei vielenCompaq-Modellen wiederum ist dasBIOS-Setup nur über externe Programme erreichbar: Die TasteF10, 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 (Typ0x12[7]) auf der ersten Festplatte vorhanden ist.[8] Alternativ lässt sich dieses BIOS nur noch über eine Startdiskette mit den entsprechenden Programmen konfigurieren.[9]

Obwohl der IBM PC ursprünglich jede Art von Bootcode unterstützte, prüfen manche BIOS-Varianten 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.[10] Auch können auf solchen BIOS-Varianten 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-Varianten 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.[11]

Synonyme

[Bearbeiten |Quelltext bearbeiten]

Neben der BezeichnungMaster Boot Record finden sich auch folgende alternative Bezeichnungen für den MBR:

  • Partition Boot Sector oderpartition sector bzw.Partitionssektor[12]
  • Master Boot Sector[12]

Aufbau des MBR

[Bearbeiten |Quelltext bearbeiten]
AdresseFunktion / InhaltGröße
(Bytes)
hexdez
0x00000Startprogramm (englischBootloader) (Programmcode)440
0x01B8440Datenträgersignatur
(seit Windows 2000)
4
0x01BC444Null
(0x0000)
2
0x01BE446Partitionstabelle64
0x01FE51055hexBootsektor-Signatur
(wird vom BIOS für den ersten Bootloader geprüft)
2
0x01FF511AAhex
Gesamt:512

Startprogramm (Bootloader)

[Bearbeiten |Quelltext bearbeiten]

DerBootloader desMaster Boot Record ist ein kleines Programm, das vomBIOS aufgerufen wird. Dieses lädt den Bootloader immer im8086-kompatiblen16-Bit-ModusReal Mode. Beim Standard-MBR von MS-DOS/​PC DOS 2.0 heißt dieses StartprogrammMaster Boot Code, sucht in der Partitionstabelle nach „sichtbaren“ und „aktiven“ Partitionen und lädt anschließend denBootsektor der ersten aktiven Partition und führt diesen aus. ImChainloading-Verfahren wird dann das eigentliche Betriebssystem geladen.

DerMaster Boot Code wurde bei jedem Betriebssystem von Microsoft ein wenig verändert, entspricht aber im Wesentlichen immer noch dem ursprünglichen Programmcode von MS-DOS 2.0. Da er grundsätzlich jedes Betriebssystem auf der ersten aktiven Partition starten kann, wird einMaster Boot Record mit enthaltenemMaster Boot Code auch als Standard-MBR bezeichnet.[13]

Der Bootloader kann jedoch durch speziell dafür vorgesehene Programme ersetzt bzw. erweitert werden. Populär sind vor allemBootmanager, die das vorher enthaltene Startprogramm auslagern und im MBR ersetzen, um stattdessen ein Auswahlmenü oder ähnliches anzuzeigen und so z. B. das Starten von beliebigen Partitionen ermöglichen. Auch gibt esDisk Manager, welche BIOS-Limitierungen durch Geometrieumsetzung[14] umgehen sollen (z. B. umLogical 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.

AuchBootviren 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.

Das Startprogramm verschiedener Betriebssysteme

[Bearbeiten |Quelltext bearbeiten]

Da das Startprogramm (englischBootloader) nur zumStarten (englischBooten) eines IBM-PC-kompatiblen Computers vorhanden sein muss, wird es normalerweise bei der Installation eines Betriebssystems in den MBR geschrieben. Dies kann auf unterschiedliche Weise geschehen. DOS und Windows beispielsweise schreiben denMaster Boot Code immer auch beim Erstellen einer Partitionstabelle durch das Dienstprogrammfdisk. Ist jedoch bereits ein MBR vorhanden, so wird mitfdisk normalerweise derBootloader nicht verändert, bei der Installation eines Betriebssystems hingegen schon. Bei den meisten Linux-Distributionen wird der Bootloader im MBR nur durch das Installieren eines spezifischen Linux-Bootloaders initiiert, wenn für diesen als Installationsort der MBR angegeben wurde.

Verbreitete Startprogramme im MBR sind:

  • Master Boot Code – generisch, von Microsoft seit MS-DOS 2.0: lädt einenBootsektor von der ersten aktiven Partition
  • mbr undmbr-install[15] – ebenfalls generisch und vonTestDisk verwendet
  • mbrbm – generisch[16]
  • bootany – generisch, Teil vonBSD/OS[17][18]
  • booteasy – generisch, von FreeFDISK (FreeDOS-FDISK) verwendet[19]
  • LILO
  • GRUB
DOS und MS-DOS-basierte Windows-Versionen
[Bearbeiten |Quelltext bearbeiten]

UnterDOS kann der MBR bei nicht partitionierten Datenträgern mit dem zu DOS gehörigendebug angesehen und bearbeitet werden. Wenn der Datenträger dagegen partitioniert ist, so kann mitdebug 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 9x (Windows 95 bisWindows 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 Befehlfdisk /mbr ein neuer Standard-Masterbootrecord geschrieben werden. Dabei wird der gesamte MBR mit Ausnahme der Partitionstabelle überschrieben, wodurchBootviren entfernt werden können, sofern das Virus nicht den Schreibzugriff auf den Master Boot Record erkennt und abfängt.[20] 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 |Quelltext bearbeiten]

Einige Microsoft-Windows-Versionen derNT-Linie, u. a.XP, nicht jedochNT 4 und2000, ü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 derNTLDR mit Auswahlmöglichkeit zwischen den verschiedenen installierten Microsoft-Betriebssystemen vorkonfiguriert.

Für Windows 2000, Windows XP und Windows Server 2003 gibt es dieWiederherstellungskonsole, hier dient der Befehlfixmbr zur Reparatur des MBR (mit Ausnahme der Datenträgersignatur) undfixboot zur Reparatur des Bootsektors einer Partition (beidefix-Befehle nur fürx86-Systeme).

Windows Vista und 7
[Bearbeiten |Quelltext bearbeiten]

Im Gegensatz zu älteren NT-basierten Windows-Systemen startet Vista aus dem Bootsektor den BootmanagerBOOTMGR (unter NT/XP war diesntldr).BOOTMGR entnimmt die Informationen zum bootenden Betriebssystem nicht der Dateiboot.ini, sondern der Datei\Boot\BCD, welche entweder auf derEFI-System-Partition liegt oder direkt auf derSystempartition bei Systemen mitPC-BIOS.

Zum Finden und Adressieren des Startlaufwerks verwendetBOOTMGR die Datenträgersignatur (Bytes 440–443 im MBR) und den Laufwerkstartoffset (in Bytes). Beide Werte sind in der BCD-Datei als BcdDeviceData-Elemente mit der BezeichnungX1000001[21] gespeichert.[22] Zum Ermitteln des Startlaufwerks vergleichtBOOTMGR die Datenträgersignatur aller erkannten Datenträger mit den gewählten Booteinträgen. Wurde die Datenträgersignatur nicht gefunden bzw. verändert, verweigert Windows den Start mit einem „winload error0xc000000e“.Hat man dieStartpartition verschoben oder ist der Laufwerkstartoffset aus einem anderen Grund fehlerhaft, quittiertBOOTMGR das mit „winload error0xc0000225“.

Die BCD-Datei ist im Gegensatz zurboot.ini keine einfacheTextdatei, sondern eineBinärdatei (genauer vom Aufbau her einRegistry Hive) und kann nicht mit einem normalenTexteditor bearbeitet werden. NebenRegedit und dem programmiertechnischen Zugriff auf die BCD-Daten perWMI-Interface istBCDEdit.exe zurzeit das einzige von Microsoft bereitgestellte Tool, das eine umfassende Bearbeitung der BCD-Datei ermöglicht. Es kann in einem laufenden Windows (oder von einer entsprechendenWindows-PE-CD) an derKommandozeile aufgerufen werden.[23]

Alternativ kann beim Booten von der Windows-CD über den Punkt „Computer reparieren/Systemwiederherstellungsoptionen“ das Toolbootrec.exe in der Eingabeaufforderung aufgerufen werden.bootrec /fixmbr schreibt einen neuen MBR,bootrec /fixboot einen neuen Startsektor in die Systempartition.[24]Eine Drittanbieter-Alternative ist das ToolEasyBCD, das eine Bearbeitung der BCD-Datei mittels grafischer Oberfläche ermöglicht.

Linux (und einige UNIX-Varianten)
[Bearbeiten |Quelltext bearbeiten]

Linux-Distributionen oderSolaris installieren meist den BootladerGRUB, seltener den älterenLILO,SYSLINUX oder andere. GRUB ist in der Lage, verschiedene Betriebssysteme (z. B. Linux,BSD,macOS oder Windows) zu starten.

GRUB Legacy
[Bearbeiten |Quelltext 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 beiunixoiden 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 einBootmenü an und lädt anschließend den Kernel und sein Image oder startet den Bootloader eines anderen Betriebssystems, wie Windows.

LILO
[Bearbeiten |Quelltext 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 demProgramm/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 |Quelltext bearbeiten]

Mit dem Befehlgrub 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 Befehldd if=/dev/hda of=mbr_backup bs=512 count=1 (/dev/hda ursprünglich für den erstenIDE-;/dev/sda für den erstenSCSI-,S-ATA-,IEEE-1394- oderUSB-Datenträger, heute auch fürIDE) in einer Datei als Sicherungskopie speichern. Zum Wiederherstellen genügt analogdd of=/dev/hda if=mbr_backup conv=notrunc. Da dieses Vorgehen aber dengesamten 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 Befehldd if=/dev/zero of=/dev/sdx 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, darf man nur die ersten 440 Bytes überschreiben, z. B.:
dd if=/dev/zero of=/dev/sdx bs=440 count=1 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.

Der Zusatzconv=notrunc in den gegebenen Beispielen wirkt sich nur aus, wenn das Ziel eine normale (schon früher erstellte) Image-Datei ist. Diese würde andernfalls ohne diesen Zusatz nach dem letzten geschriebenen Byte abgeschnitten werden. Bei Block-Devices (also Festplatten, Partitionen) als Ziel wirkt die Option sich nicht aus.[25]

Datenträgersignatur

[Bearbeiten |Quelltext bearbeiten]

Die Datenträgersignatur (auchFestplattenidentifikation, engl.Disk Signature bzw.Disk identifier) wird von Windows 2000 und XP verwendet, um Datenträger, die mit einer klassischen Partitionstabelle versehen sind (von MicrosoftBasisdatenträ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 Dateiboot.ini verwendet, die Teil des Bootloaders von Windows NT (NTLDR) ist.[26] 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:

  • Einer 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 kein Laufwerksbuchstabe zugeordnet.
  • Einer kopierten Systempartition wird unter bestimmten Umständen ein neuer Laufwerksbuchstabe zugewiesen. In solchen Fällen scheitert der Bootvorgang.[27]

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

Der Linux-Befehldd 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 |Quelltext bearbeiten]

DiePartitionstabelle gibt Auskunft über diePartitionen 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 wieTestDisk wiederherstellen. Der Eintrag jeder Partition enthält zweiCHS-Adressen (die Start- und die Endadresse) und jeweils einelogische Blockadresse und die Partitionsgröße in Datenträgerblöcken als 32-bit-Zahlen. Dadurch lassen sich mit herkömmlichen Partitionstabellen über CHS-Adressierung maximal etwas über 8 GB (ca. 7,87GiB) große Datenträger und (wenn vom Betriebssystem unterstützt) mit LBA etwas über 2 TB (fast 2TiB) große Partitionen bzw. etwas über 4 TB (fast 4 TiB)[29] große Datenträger nutzen, s. u. Um größere Datenträger oder Partitionen ansprechen zu können, muss die NachfolgetechnologieGUID Partition Table (GPT) oder eine Festplatte imAdvanced Format genutzt werden.

Aufbau der Partitionstabelle

[Bearbeiten |Quelltext 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
0000fc31c08ed031e48ed88ec0be007cbf00
001006b90001f3a5beee07b008ea20060000
.  .  .
019000007c00000000000000000000313233
01a034460000414e44546d6272000202021f
01b0c7000080000000007856341200000001
01c0010083feffff3f0000004129540200fe
01d0ffff82feffff80295402fae71d0080fe
01e0ffff83feffff7a117202fae71d0000fe
01f0ffff05feffff74f98f020c836c0455aa

Die Tabelle befindet sich anByte 446 (1BEhex) des jeweiligenSektors und hat maximal 4 Einträge à 16 Byte, sie ist also 64 Byte groß. Daran anschließend folgt dieMagic Number, die aus den beiden Byte55hex undAAhex 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
0x001bestimmt ob Partition gestartet werden kann oder nicht
(80hex=bootfähig, 00hex=nicht bootfähig)
0x013CHS-Eintrag des ersten Sektors
0x041Typ der Partition (Partitionstyp)
0x053CHS-Eintrag des letzten Sektors
0x084Startsektor (relativ zum Anfang der Festplatte, oder zur erweiterten Partitionstabelle) perLBA-Methode
0x0C4Anzahl der Sektoren in der Partition perLBA-Methode

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

DieCHS-Einträge sind wie folgt kodiert:

Format des CHS-Eintrages
Format des CHS-Eintrages

Dabei werden die Zylinder von0 bis1023 (1024 Zylinder), die Köpfe von0 bis255 (256 Köpfe) und die Sektoren von1 bis63 (63 Sektoren) gezählt und die erhaltenen Wertetripel einem Datenblock zugeordnet.

DieCHS-Adressierung ergibt eine maximal adressierbare Größe von 8.455.716.864 Bytes (1024 Zylinder ⋅ 63 Sektoren/Zylinder ⋅ 256 Köpfe/Sektor ⋅ 512 Bytes/Kopf) und erlaubt somit eine eindeutige Adressierung nur bei Datenträgern bis knapp 8,5 GB bzw. 7⅞GiB; wobei die CHS-Angaben meistens der Rückkompatibilität dienende Fantasiewerte sind, s. Artikel. Bei solchen vergleichsweise kleinen Datenträgern kann also eineKonvertierung 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, 255, 63“, die tatsächliche Datenträgergröße wird jedoch durch dasLogical Block Addressing, das mitATA-2 als 48-bit-LBA eingeführt wurde, angegeben. Aus der Begrenzung der Längenangabe im „IBM-PC-kompatiblen“ Partitionseintrag auf 32 Bit und der bei Festplattenlaufwerken lange üblich gewesenen Sektorgröße von 512 Bytes Nutzdatenmenge ergibt sich eine maximale Partitionsgröße von fast 2 TiB ((232 - 1) Blöcke [Blöcke 1 bis 232-1] ⋅ 512 Bytes/Block). Unterteilt man eine Festplatte in mehrere Partitionen und lässt die letzte Partition mit maximaler Partitionsgröße auf dem letzten LBA-Sektor beginnen, lassen sich theoretisch die ersten knapp 4,4 TB (4 TiB – 1 KiB) der Festplatte benutzen; d. h. die vorletzte Partition darf die 2-TiB-Grenze nicht erreichen, mindestens der letzte 32-bit-adressierbare Block muss frei für die letzte Partition sein, weil sonst ihre Erstellung gemäß MBR-Schema unmöglich ist.

Ältere Betriebssysteme können Beschränkungen der Datenträgergröße aufweisen. Beispielsweise istMicrosoft Windows XP auf knapp 2,2 TB bzw. 2 TiB (232 [Blöcke 0 bis 232-1] ⋅ 512 Bytes) beschränkt[30]. Größere Datenträger werden auch im unpartitionierten Zustand mit falscher Größe ausgewiesen. Der ausgelöste Überlauf lässt z. B. einen 3 TB großen Datenträger nur ca. 800 GB groß erscheinen. Schreibzugriffe könnenDatenverlust zur Folge haben.

Bei einer größeren logischen, d. h. von der Festplatte angegebenen, Blockgröße sind die Grenzen entsprechend erhöht (z. B. bei 4-KiB-Sektoren auf fast 32 bzw. 16 TiB), allerdings können ältere Betriebssysteme wie Windows XP nur von Datenträgern mit 512(e)-Byte-Sektoren booten.

Wichtige Partitionstypen mit ihren Kennnummern

[Bearbeiten |Quelltext bearbeiten]

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

Typbyte (hex)Bezeichnung
sichtbarversteckt
00leer/unbenutzt
0111FAT12 ≤ 16 MB (hauptsächlichDisketten und früheSpeicherkarten mit geringer Kapazität)
12OEM-Partition für Konfiguration, Diagnose,BIOS-Erweiterung
0414FAT16 ≤ 32 MiB
05erweiterte Partition
0616FAT16 > 32 MiB
0717NTFS (Windows-NT-basiertes Windows),HPFS (OS/2) oderexFAT (diverse Betriebssysteme)
0B1BFAT32 (mitCHS-Adressierung)
0C1CFAT32 mitLBA
0E1EFAT16 > 32 MiB mit LBA
0Ferweiterte Partition mit LBA
27Windows RE
42Dynamischer Datenträger (abWindows 2000)
75IBMGPFS
82LinuxSwap;
Solarisx86 (Versionen 2 bis 9), enthält mittelsDisklabel abermals Partitionen; ab 2005 verwendet Solaris Typ BF[31]
83LinuxNative mit einem von Linux unterstützten Dateisystem, z. B.ext2,ext4 oderBtrfs
84Partition vonIntel Rapid Start
8ELinuxLVM
A5FreeBSD undMidnightBSD
A6OpenBSD
A9NetBSD
AFPartition vonmacOS (früher Mac OS X), mögliche Dateisysteme sindHFS,HFS+ oderAPFS
BFSolaris, enthält mittelsDisklabel abermals Partitionen, übliche Dateisysteme sindUFS (bis Solaris 9) oderZFS (ab Version 10)
EBBeOS oderHaiku mitBe File System
EESchutz-MBR derGUID-Partitionstabelle (GPT)
EFEFI-Partition beiHybrid-MBR, z. B. dieEFI System Partition (ESP)
FDLinux-RAID-Partition

Primäre und erweiterte Partitionstabelle

[Bearbeiten |Quelltext 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ßenPrimärpartitionen. Eineeinzige Partition im MBR kann jedoch auch als erweitert (extended, Typ 5 oder Fhex) markiert sein. Diese verweist dann im Eintrag Startsektor auf die ersteerweiterte Partitionstabelle (EBR).

Diese befindet sich im ersten Sektor der erweiterten Partition. Jede erweiterte Partitionstabelle definiert genau einelogische Partition und verweist bei Bedarf auf die nächste erweiterte Partitionstabelle. Die erweiterten Partitionstabellen funktionieren nach dem Prinzip derverketteten Liste, daher sind hinter den primären Partitionen beliebig viele logische Partitionen möglich. Als Länge des Eintrags der Typ-5-Partitionim 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 hiernicht mehr relativ zum Anfang der Festplatte angegeben:

  • Der erste Eintrag beschreibt die logische Partition. Dessen Startsektor wird immerrelativ 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 immerrelativ 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.

Bootsektor-Signatur

[Bearbeiten |Quelltext bearbeiten]

Die Signatur (auchMagische Zahl genannt) besteht aus den 2 Byte 55hex und AAhex. AufLittle-Endian-Systemen wird dies als 16-Bit-Zahl AA55hex interpretiert. Ist die Signatur vorhanden, so geht das BIOS davon aus, dass ein gültiger Bootsektor 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.[32] Natürlich ist eine korrekte Signatur keine Garantie für einen vorhandenen und funktionierenden Boot-Code. Sie dient lediglich dazu, zu verhindern, dass „leere“ Bootsektoren oder 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.[33]

MBR bei EFI-basierten Computern

[Bearbeiten |Quelltext bearbeiten]

BeiEFI-basierten Computern kommt anstelle der MBR-Partitionstabelle die neuereGUID Partition Table (GPT) zum Einsatz. Aus Gründen der Abwärtskompatibilität enthält jede GPT einen sogenanntenSchutz-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 sich über die gesamte Datenträgerkapazität erstreckt. Dieser Schutz-MBR lässt sich außerdem dazu benutzen, MBR-basierte Betriebssysteme auf EFI-basierten Computern bei aktivem CSM (Compatibility Support Module, eine BIOS-Emulation) zu installieren, indem die Partitionen der GPT ebenfalls auf der MBR-Partitionstabelle abgebildet werden. Eine solche Konfiguration wird alsHybrid-MBR bezeichnet und wird z. B. vonApple bei dessenBoot-Camp-Software verwendet, was die Installation von Windows-Versionen im nicht-GPT-kompatiblen BIOS-Modus auf Intel-basiertenMacs erlaubt. Die EFI-BootloaderrEFIt und dessenForkrEFInd können mit dem Programmgptsync die GUID- und die MBR-Partitionstabelle synchronisieren.

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Master Boot Record. Abgerufen am 9. April 2018 (englisch). 
  2. Peter Bright: The PC BIOS will be killed off by 2020 as Intel plans move to pure UEFI. The ability to boot DOS and other legacy relics is going to disappear. Ars Technica, 22. November 2017, abgerufen am 10. Januar 2018 (englisch): „PC operating system support started to materialize around 2007 (the 64-bit x86 version of Windows Vista Service Pack 1 introduced the ability to boot from UEFI). With Intel’s Sandy Bridge generation of processors, introduced in 2011, PC hardware started switching in earnest to UEFI.“ 
  3. Daniel 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. September 2005, abgerufen am 24. Februar 2013 (englisch). 
  4. The Master Boot Record (MBR)and Why it is Necessary? In: Knowledge Center. DEW Associates Corporation, archiviert vom Original (nicht mehr online verfügbar) am 27. Mai 2013; abgerufen am 13. Juli 2013 (englisch, lesenswerte Analyse des Startvorgangs inklusive der Rolle desMaster Boot Record).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.dewassoc.com 
  5. The Boot Process. 4. Looking for the Operating System. In: Bios Central. Bob Hurt, abgerufen am 24. Februar 2013 (englisch, Folgende Aussage ist im Allgemeinen falsch –): „Once POST is complete and no errors found, the BIOS will begin searching for an operating system. 
  6. ThinkPad T60Service und Fehlerbehebung (PDF; 1,6 MB), Lenovo, zugriff: 24. Juni 2013
  7. freedesktop.orgBug #24999: Hide Compaq recovery partition type 0x12 (englisch)
  8. The Compaq System Partition (englisch)
  9. Deskpro BIOS... (englisch), Foreneintrag auf alt.sys.pc-clone.compaq vom 26. September 2005
  10. Rod Smith: Legacy BIOS Issues with GPT. In: GPT fdisk Tutorial. 16. April 2013, abgerufen am 13. Juli 2013 (englisch, siehe AbschnittCauses of Incompatibility). 
  11. Launchpad:Operating System not found (englisch) vom 4. Februar 2010, abgerufen am 5. Februar 2014
  12. abWhat is Partition Boot Sector? In: Resource. CHENGDU Yiwo® Tech Development Co., Ltd. (EaseUS), abgerufen am 24. Februar 2013 (englisch, Beispiel für die Verwendung einer alternativen Bezeichnungen). 
  13. Daniel B. Sedory: An Examination of the Standard MBR (Master Boot Record) [Embedded in Microsoft’s FDISK Programs from MS-DOS 3.30 through MS-Windows™ 95 (A)]. In: The Starman’s Realm. 26. Mai 2013, abgerufen am 11. Februar 2015 (englisch). 
  14. Microsoft Knowledge Base:Windows-Unterstützung für große IDE-Festplatten (Memento vom 5. Juli 2011 imInternet Archive)
  15. mbr-install herunterladen
  16. mbrbm.sourceforge.net
  17. BOOTANY(8). (Manpage) In: BSD/OS. BSDi, 10. Juli 2001, abgerufen am 15. Juni 2017 (englisch). 
  18. Iain Reid: HD booting: a solution. (E-Mail) A Beginners Guide to Linux. 6. April 1992, abgerufen am 15. Juni 2017 (englisch): „For a good general introduction to the principles of what happens when your computer boots up you should read theread.me file that comes with the freeware program bootany … Using bootany: Bootany is a boot time partition selector like shoelace and, in theory should be usable to give you the boot choice like shoelace.“ 
  19. BOOTEASY.ASM aufGitHub
  20. FDISK /MBR rewrites the Master Boot Record. bzw.FDISK /MBR überschreibt Master Boot Record. Microsoft Knowledge Base, Artikel 69013
  21. boyans.net
  22. diddy.boot-land.net (Memento desOriginals vom 21. Februar 2015 imInternet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/diddy.boot-land.net
  23. Multibooters – Dual/Multi Booting With Vistabootmgr and BCD. undDisk Signature.
  24. Beheben und Reparieren von Startproblemen mit dem Hilfsprogramm bootrec.exe. Microsoft Knowledge-Base, Artikel 927392
  25. stackoverflow.com
  26. 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
  27. Karsten Violka: Systemkopie bootet nicht. In:Heise online. 23. Januar 2006 (c’t 3/2006, S. 180). Abgerufen am 9. März 2016.
  28. Karsten Violka:Festplatten-ABC. Laufwerksbuchstaben unter Windows XP und 2000 bändigen. In:c’t, 9/2005, S. 184.
  29. Working Around MBR's Limitations (englisch), Rod Smith, abgerufen am 3. Juni 2015, Zitat:…fudging the 2 TiB limit to 4 TiB by starting a partition just before the 2 TiB limit…
  30. learn.microsoft.comWindows-Unterstützung für Festplatten mit einer Größe von mehr als 2 TB. Abgerufen am 18. November 2023.  Ursprünglich 2581408 in Knowledge-Base.
  31. Andries E. Brouwer: List of partition identifiers for PCs. In: Partition types. 2013, abgerufen am 18. September 2019 (englisch). Starting from 2005, newly installed systems will use 0xbf.
  32. Boot Record Signature AA55 Not Found. bzw.MBR-Signatur AA55 wird nicht gefunden. Microsoft Knowledge Base, Artikel 149877
  33. Harald Bögeholz: Wundersame Plattenbeschleunigung. In:Heise online. 10. September 1998 (c’t 19/1998, S. 218). Abgerufen am 9. März 2016.
Partitionstabellen und derenPlattformen
VD
Acorn-Partitionstabelle

Acorn 

Apple Partition Map

Macintosh (m68k) |Macintosh (PowerPC

Atari Partition Table

Atari 

Disklabel

Alpha (OSF Disklabel) |BSD |SGI (SGI Disklabel) |Sun Microsystems (Sun Disklabel) 

GUID Partition Table

Intel-Mac (IA-32/x64) |Disklabel (IA-32/x64) |x86-PC (UEFI) |Itanium (IA-64) 

Master Boot Record

Disklabel (IA-32) |IBM-PC-kompatibel (BIOS

Rigid Disk Block

Amiga |MorphOS 

Ultrix Partition Table

Ultrix 

Volume Table Of Contents

Disklabel 

Abgerufen von „https://de.wikipedia.org/w/index.php?title=Master_Boot_Record&oldid=256376605
Kategorien:
Versteckte Kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp