Bootsektor und MBR reparieren unter Windows 7 und Windows Server 2008 (R2)

Windows startet nicht, weil der Boot-Speicher keinen gültigen Eintrag enthält (Thumbnail)Auch wenn das Tool bcdedit auf den zweiten Blick weniger sperrig zu bedienen ist, als es auf den ersten scheint, kann es doch nicht alle Aufgaben abdecken, die nötig sind, ein nicht mehr startendes System wieder flottzukriegen. Ist der Boot-Speicher etwa korrupt, keine Partition aktiv oder kein gültiger Master Boot Record (MBR) vorhanden, behebt es solche Fehler nicht. Es ist eben nur für die Kon­fi­gu­ra­tion der zu startenden Systeme selbst zuständig, unter der Annahme, dass der Rest drum herum schon in Ordnung sei.

Stufen des Bootens: MBR, Bootmanager, Be­triebs­sys­tem

Windows startet nicht, weil der Boot-Speicher keinen gültigen Eintrag enthältSchuld ist die althergebrachte Technik des Bootens auf BIOS-basierten Rechnern, an der auch moderne Be­triebs­sys­teme nichts ändern können; die sind ja zu diesem Zeitpunkt noch nicht in Funktion. Der PC liest nach dem Einschalten zunächst die ersten 512 Byte der ersten Festplatte ein und kennt danach die darauf vorhandenen Partitionen sowie die Sektor-Adresse eines Bootloaders, zu dem er springt und dessen Code er abarbeitet.

Unter Windows seit NT führt dies dann dazu, dass der Bootmanager aufgerufen wird. Es handelt sich bei aktuellen Windows-Versionen um das Programm bootmgr an einer physisch festen Position auf der aktiven Partition, die in der Regel versteckt ist. Es liest den Boot-Speicher \Boot\BCD auf dieser Partition aus und präsentiert die daraus resultierende Auswahl an startbaren Be­triebs­sys­temen als Boot-Menü.

Gibt es nichts auszuwählen, etwa weil sich nur ein OS auf dem Rechner befindet und der Benutzer nicht ‹F8› gedrückt hat, sieht man von diesem Vorgang nichts. Vor Windows Vista/Windows Server 2008 hieß das Programm ntldr, wertete die Textdatei boot.ini aus und baute daraus das Boot-Menü.

Wenn man so will, handelt es sich dabei jeweils bereits um ein rudimentäres Be­triebs­sys­tem: Immerhin kann es Informationen anzeigen und Eingaben entgegennehmen sowie diese verarbeiten. Das mehrstufige Booten birgt jedoch auch einige Fehlerquellen, und zwar an jeder der Stufen:

  1. der MBR kann ungültig sein, das heißt er enthält nicht die Adresse eines gültigen Bootloaders,
  2. auf der aktiven Partition findet sich kein Programm bootmgr, etwa weil eine alte Windows-Installation wieder ntldr darüber geschrieben hat,
  3. bootmgr kann den Boot-Speicher \Boot\BCD nicht lesen, weil dieser beschädigt wurde,
  4. es ist keine Partition aktiv, was für Windows ein Problem darstellt. Andere Be­triebs­sys­teme wie Linux werten das „Aktiv“-Attribut nicht aus und benötigen es nicht.

Reparatur mit diskpart und bootrec

Unter WinRE macht die automatische Sys­tem­start­repa­ra­tur im Allgemeinen einen wirklich guten Job, um diese 4 Probleme zu erkennen und zu beheben. Falls sie es doch einmal nicht tut, bleiben auf der WinRE-Kommandozeile 2 Tools, um das Problem manuell anzugehen: diskpart und bootrec.

  1. Ist der MBR ungültig, repariert dies der Befehl bootrec /FixMbr,
  2. bootmgr wird durch bootrec /FixBoot wiederhergestellt,
  3. einen komplett neuen Boot-Speicher baut bootrec /RebuildBcd, scannt danach nach Windows-Installationen und bietet die Möglichkeit, diese dem Boot-Speicher hinzuzufügen. Ist der Boot-Speicher an sich in Ordnung, und man will nur vermisste Einträge manuell hinzufügen, bietet bootrec /ScanOs einen nicht-schreibenden Modus, bei dem die beim Scan gefundene Systeme nur aufgeführt werden.
  4. Dass der Fehler an einem fehlenden „Aktiv“-Attribut liegt, erkennt man daran, dass die bootrec-Befehle der Punkte 2 und 3 den Fehler „Element not found“ ausgeben. In diesem Falle ruft man diskpart auf, und markiert mit der Befehlssequenz
    select disk 0
    select partition 1
    active
    exit
    etwa die erste Partition der ersten Festplatte als aktiv.

Die Befehle haben den Vorteil, dass man sie auch ohne Ursachenforschung eben mal so ausprobieren kann. Befehl 3 zerstört zwar ein eventuell angepasstes Boot-Menü, was aber in Anbetracht eines nicht mehr startenden Servers sicherlich verschmerzbar ist.

5 Kommentare

Bild von TM*
TM* (Besucher) sagt:

Hallo,
manchmal stößt man ja in diesem Müllhaufen, genannt "Internet", doch noch auf Dinge, die man gebrauchen kann. Und diese Seite ist so eine!
Danke ganz herzlich, hat mir sehr geholfen!
TM*

Bild von Dankbar
Dankbar (Besucher) sagt:

Vielen, vielen Dank für diesen Beitrag. Heute habe ich die Linux-Partition gelöscht und vergessen, vorher den MBR wiederherzustellen. Somit fuhr Win7 natürlich nicht mehr hoch und die Standardbefehle bootrec /fixmbr /fixboot klappten nicht. Erst dank Ihrer Beschreibung im Punkt 4 mit diskpart hat der Befehl bootrec /fixboot dann Wirkung gezeigt.

Herzlichen Dank!

Bild von MeineRettung
MeineRettung (Besucher) sagt:

Danke!

Konnte dank der Hilfe mein System wieder ans laufen bekommen.
Wollte nur anmerken, dass ich noch folgendes Problem hatte, das bootrec /fixboot bzw. bootrec /rebuildbcd nicht direkt geklappt haben, weil die volumes schreibgeschützt waren. Musste noch mit: "Attributes volume clear readonly" den schreibschutz aufheben. Sowohl auf der Partition wo der BootManager war, als auch auf der Partition mit dem OS. Vorher per "select disk" bzw. "select volume" die Partitionen auswählen.

//Martin.

Bild von Wieder glücklich
Wieder glücklich (Besucher) sagt:

Hallo,

ich hatte viel rumprobiert mit bcdedit und bootrec, hab aber bei
bootrec /scanos und /rebuildbcd immer "... Installations: 0" heraus
bekommen.
Jetzt konnte ich das Problem mit diskpart lösen:
Bei mir ist die aktive Partition *nicht* die 1, sondern die 2.
Mittels diskpart > list volume wurde es deutlich.
Partition 1 ist bei mir winre (c:), Partition 2 ist "System" (d:) und eben der Aufenthaltsort von Windows. An den Namen und Speichergrößen war es zu erkennen.

Zusammengefasst die Lösung auf meinem System:
diskpart
select disk 0
select partition 2
active
exit
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos (hat jetzt 1 Installation ausgeworfen :)))
bootrec /rebuildbcd

Nochmal drauf geschaut mittels bcdedit /enum all /v
- das sah jetzt schön aufgeräumt aus...

Gebootet - läuft...!
Yeah!-)))

Vielen Dank für den Hinweis!
Nicolas

Bild von nochmal glück gehabt
nochmal glück gehabt (Besucher) sagt:

Moin,

ich hatte das Problem, dass ich ein RAID 0 einsetze und den MBR mit dem Programm Acronis Disk Director zerstört habe.
In diskpart "select partition 0" hat schon mal nicht funktioniert.
Wenn man allerdings in diskpart "list volume" eingibt werden auch logische Volumes aufgelistet.
Man kann jetzt statt "select partition 0" auch ein volume mit "select volume 0" auswählen und dann mit "active" wieder als aktiv kennzeichnen. Danach noch "bootrec /rebuildbcd".

Das hat bei mir das Problem gelöst.

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt. Wenn mit der von Ihren angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen