MBR sichern und restaurieren

Übersicht:
Das Problem
Betriebssystemspezifische Lösung
Allgemeine Lösung
Aufbau des MBR
CHS-Modus, LBA-Modus
Verweise
Verschiedene Betriebssysteme booten
Download des Programms MBR.EXE (Datei: MBR.ZIP)

Das Problem:

Möchten Sie probeweise ein weiteres, zusätzliches Betriebssystem installieren, so sollten Sie sicherstellen, dass die alte Konfiguration wieder vollständig hergestellt werden kann.

Aktuelle Betriebssysteme legen bei der Installation einen eigenen Bootmanager an. Dieser Bootmanager wird in den Master Boot Record (MBR) eingetragen. Beim Booten des Rechners von Festplatte wird zuerst immer der MBR eingelesen. Er befindet sich im Zylinder 0, Spur 0, Sektor 1 der ersten physikalischen Festplatte des PCs.

Möchte man das probeweise installierte Betriebssystem wieder entfernen, so muss man den ursprünglichen Zustand des MBR wieder herstellen.

Zum Seitenanfang


Betriebssystemspezifische Lösungen des Problems:

Manche Betriebssysteme bieten Tools an, mit denen dies geschehen kann. Vorgehensweise bei SuSE-Linux 8.0 :

Diese Vorgehensweise funktioniert jedoch nur, wenn Linux nicht mehrfach installiert wurde, z.B. weil man verschiedene Konfigurationen testen wollte.

Andere Betriebssysteme bieten Tools an, mit denen man den Bootsektor nur für dieses Betriebssystem wieder reparieren kann. Bei Windows 2000 läßt man den Rechner von der Installations-CD booten und wählt den Konsolenmodus. Am Prompt gibt man den Befehl fixmbr ein. Windows läuft dann zwar wieder, andere Betriebssysteme jedoch nicht mehr.

Zum Seitenanfang


Allgemeine, d.h. betriebssystemübergreifende Lösung des Problems:

Man speichert den Inhalt des MBR vor der Installation eines weiteren Betriebssystems mit einem geeigneten Programm in eine Datei. Das hier beschriebene Programm MBR.EXE läuft unter DOS. Zweckmäßigerweise kopiert man es auf eine DOS-Bootdiskette.

Unter Windows erstellt man eine Bootdiskette, indem man im Arbeitsplatzfenster mit der rechten Maustaste das Kontextmenü des Diskettenlaufwerks öffnet und eine Diskette mit der Option 'Systemdateien kopieren' formatiert.
Anschließend kopiert man die Datei MBR.EXE auf diese Bootdiskette.


Optionen des Programms MBR.EXE:
MBR als Datei im Binärfromat sichern: MBR /STORE Datei
MBR /S Datei
MBR als Datei im Hexadezimalformat sichern: MBR /SHEX Datei
MBR aus Binär- oder Hex-Datei vollständig restaurieren:
Das Programm ermittelt selbst, ob die Datei im Binär- oder im Hex-Format vorliegt.
MBR /RESTORE Datei
MBR /R Datei
MBR aus Binär- oder Hex-Datei ohne Partitionstabelle restaurieren:
Eine geänderte Partitionstabelle bleibt erhalten.
MBR /R446 Datei
Kurzhilfe anzeigen: MBR /H
Version anzeigen: MBR /V


Format der abgelegten Datei:

Beträgt die Größe der Datei exakt 512 Byte, so wird sie beim Zurückschreiben in den MBR als Binärdatei interpretiert. Andernfalls wird sie als Datei im Hexadezimalformat ausgewertet.

MBR /R
Binärdatei
Datei von exakt 512 Byte Größe. Die letzten 2 Byte müssen die Bootsektorkennung '55', 'AA' enthalten. Die Datei wird sonst nicht in den MBR übertragen.
Binärdateien lassen sich nur recht umständlich z.B. mit dem DOS-Programm DEBUG.EXE editieren.
MBR /R
Hexdatei
Die Datei muss aus genau 32 Zeilen mit jeweils 16 Byteangaben bestehen. Jede Zeile beginnt mit einer 2-Byte langen, Hexadezimal-Angabe des Offsets. Der Offset der nächsten Zeile ergibt sich aus dem Offset der aktuellen Zeile, zu dem der Wert 0010Hex addiert wird. Ein eventuell angefügter Inhalt im ASCII-Code wird beim Zurückschreiben ignoriert. Als Trennzeichen zwischen Offset und Inhalt, bzw. Inhalt und ASCII-Code wird nur der Doppelpunkt akzeptiert. Trennzeichen zwischen aufeinander folgenden Bytes einer Zeile dürfen nur Leerzeichen sein. Die letzte Zeile muss mit den Werten '55', 'AA' enden. Beispiel:
Offset:               Zeileninhalt im Hex-Format         : ASCII-Code
0000  : 33 C0 8E D0 BC 00 7C FB  50 07 50 1F FC BE 1B 7C : 3.м.|P.P..|
....  :                       ....                       :      ....
01F0  : 00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 AA : ..............U
Dateien im Hex-Format kann man mit jedem einfachen Editor ändern.
MBR /R446
Datei
Von der Datei wird nur der in den ersten 446 Byte enthaltene Bootcode in den MBR übertragen. Die Partitionstabelle (Offset: 01BEhex bis 01FDhex) und die Bootsektorkennung '55', 'AA' (Offset: 01FEhex) werden nicht geändert. Die Datei muss vorher als gültige Binär- oder Hexadezimal-Datei erkannt worden sein (s. oben).
MBR /S
Datei
Der MBR wird vollständig als Binärdatei von 512 Byte Länge gespeichert.
MBR /SHEX
Datei
Der MBR wird vollständig als Hexdatei im beschriebenen Format gespeichert.

Download des Programms MBR.EXE


Zum Seitenanfang


Aufbau des MBR

Der MBR enthält neben dem Bootcode die Partitionstabelle. Hier können maximal vier primäre Partitionen bzw. drei primäre und eine erweiterte Partition in den MBR eingetragen sein.
Offset (hex.) Offset (dez.) Bedeutung Größe /
Byte
0000 bis 01BD 0 bis 445 Bootcode des MBR 446
01BE bis 01CD 446 bis 461 1. Eintrag der Partitionstabelle 16
01CE bis 01DD 462 bis 477 2. Eintrag der Partitionstabelle 16
01DE bis 01ED 478 bis 493 3. Eintrag der Partitionstabelle 16
01EE bis 01FD 494 bis 509 4. Eintrag der Partitionstabelle 16
01FE bis 01FF 510 bis 511 Bootsektorkennung 55 AA 2


Aufbau eines Eintrags der Partitionstabelle
Alle anderen Einträge sind nach dem gleichen Schema strukturiert.
Offset (hex.)
für 1. Eintrag der Partitionstabelle
Rel. Offset
zum Eintrag der Partitionstabelle
Bedeutung (alle Wert im Hex-Format)
01BE 00 Bootflag der Partition:
80 = bootfähig, 00 = nicht bootfähig
Es ist immer nur eine Partition bootfähig.
01BF bis 01C1 01 bis 03 CHS-Angabe des Anfangs der 1. Partition
Byte 01: Kopf
letzte 6 Bit von Byte 02: Sektor
höchste 2 Bit von Byte 02 und Byte 03: Zylinder
01C2 04 Angabe des Partitionstyps (Dateisystem), z.B.:
Wert Partitions-Typ
0x00 frei
0x01 FAT12
0x04 FAT16 <= 32 MByte
0x05 erweiterte Partition
0x06 FAT 16 > 32 MByte
0x07 HPFS oder NTFS
0x0A OS/2-Bootmanager
0x0B FAT32
0x0C FAT32 mit LBA-Adressierung
0x0E FAT16 mit LBA-Adressierung
0x0F erweiterte Partition mit LBA-Adressierung
0x1_ wie 0x0_, aber durch Bootmanager versteckt
0x82 Linux Swap
0x83 Linux ext2fs
01C3 bis 01C5 05 bis 07 CHS-Angabe des Endes der 1. Partition
Byte 05: Kopf
letzte 6 Bit von Byte 06: Sektor
höchste 2 Bit von Byte 06 und Byte 07: Zylinder
01C6 bis 01C9 08 bis 0B Startsektor der 1. Partition (LBA-Modus)
08: niederwertigstes Byte, 0B: höherwertigstes Byte
01CA bis 01CD 0C bis 0F Anzahl der Sektoren der 1. Partition (LBA-Modus)
0C: niederwertigstes Byte, 0F: höherwertigstes Byte


Beispiel:
01B0: 00 00 00 00 00 2C 44 63  23 A7 23 A7 00 00 80 01 : .....,Dc##....
01C0: 01 00 0B FE BF 7E 3F 00  00 00 80 A3 9C 00 00 00 : ...~?........
01D0: 81 7F 0F FE FF FF BF A3  9C 00 9A 6B F7 02 00 00 : ......k...

Der erste Eintrage der Partitionstabelle beginnt bei 01BEhex.

Offset (hex.)
für 1. Eintrag der Partitionstabelle
Rel. Offset
zum Eintrag der Partitionstabelle
Bedeutung (alle Wert im Hex-Format)
01BE 00 80 : Partition ist bootfähig Bootflag
01BF 01 01 : Kopf = 1 Partitionsbeginn
CHS-Modus
01C0 02 01 AND 3F = 01 : Sektor = 1
01C0 bis 01C1 02 bis 03 (01 AND C0) * 2^2 + 00 = 0000 :
Spur = 0
01C2 04 0B : FAT32, CHS, sichtbar Partitionstyp
01C3 05 FE : Kopf = 254 Partitionsende
CHS-Modus
01C4 06 BF AND 3F = 3F : Sektor = 63
01C4 bis 01C5 06 bis 07 (BF AND C0) * 2^2 + 7E = 027E :
Spur = 638
01C6 bis 01C9 08 bis 0B 00 00 00 3F : Startsektor = 63 LBA-Modus
01CA bis 01CD 0C bis 0F 00 9C A3 80 : Sektorzahl = 10265472

Zum Seitenanfang


CHS-Modus

Früher wurden Festplatten im CHS-Modus adressiert. Aus der Länge der im Partitionseintrag dafür vorgesehen Bitmuster ergibt sich:

CHS  Bitbreite  Werte 
Kopf  8 Bit  0 bis 255 
Sektor  6 Bit  1 bis 63 
Spur  10 Bit  0 bis 1023 
Die max. Kapazität einer Festplatte im CHS-Modus beträgt somit:
Kopfanzahl * Sektoranzahl * Spuranzahl * Byte / Sektor
= 256 * 63 * 1024 * 512 Byte
= 8455716864 Byte
= 8257536 KByte
= 8064 MByte
= 7,875 GByte


LBA-Modus

Heutige Platten haben wesentlich größere Kapazitäten. Sie werden im LBA-Modus angesprochen. Für die Position und die Länge einer LBA-Angabe sind jeweils 4 Byte (= 2 ^ 32 Bit) vorgesehen. Die theoretische Maximalkapazität einer Festplatte im LBA-Modus beträgt somit etwa:

 2^32 Sektoren * 512 Byte/Sektor = 2048 GByte = 2 Terabyte 

Praktisch verwendet der LBA-Modus jedoch nur 28 Bits für die Adressierung. Der LBA-Modus wird von BIOS-Versionen unterstützt, welche die erweiterten Interrupt-13-Spezifikation beherrschen. Dabei ist der entsprechende Bereich zur Adressierung der Sektoren von 24 auf 28 Bit erweitert. Er umfasst 65.536 Zylinder, 16 Köpfe und 255 Sektoren. Das entspricht einer Maximalkapazität von:

 2^28 Sektoren * 512 Byte/Sektor = 128 GByte 
bzw. etwas genauer:
 65536 Zyl. * 16 Köpfe * 255 Sekt. * 512 Byte/Sekt. = 127,5 Gigabyte 

Die momentane Erweiterung der LBA- bzw. ATA-Spezifikation auf 48 Bit erlaubt theoretische Festplattenkapazitäten von bis zu 131.072 Terabyte (= 128 Petabyte).

Neben der durch die BIOS-Version gegebenen Maximalgröße einer Partition ist die durch das jeweilige Dateisystem (FAT, FAT 32, NTFS, ext2...) vorgegebene Grenze zu berücksichtigen. In der Praxis gilt immer die kleinere Angabe.

Zum Seitenanfang


Verweise

Download des Programms MBR.EXE: Datei: MBR.ZIP
Kostenlose Tools (z.B. PartInfo) der Firma Powerquest:  ftp://ftp.powerquest.com/pub/utilities
Ranish- Info und Tools:  www.ranish.com/part
Computer Boot Sequence: www.mossywell.com/boot-sequence/
HDCopy:  www.hdcopy.de
Hexeditor (Dateien und Laufwerke auf Hex-Ebene analysieren):  www.winhex.com
Nickles (Festplatten - prüfen, optimieren) www.nickles.de/category_tree4.html
tecChannel: Storage- Grundlagen www.tecchannel.de/storage/grundlagen.html

Zum Seitenanfang


Quelle: www.w-hermanns.de