Montag, 14. September 2009

Vista bootet nicht mehr (Dual-Boot)

Folgendes Szenario: Ein Computer mit einem Dual-Boot-System mit Windows Vista und openSUSE 11.1, gemanagt durch den Grub-Manager. openSUSE bootet weiterhin über Grub, nur Windows stellt sich quer. Die Reparieren-Routine der Windows DVD hilft auch nicht weiter.
Der Boot-Vorgang wird entweder wegen folgendem Fehler abgebrochen:
File: \Boot\BCD
Status: 0xc000000f

Dann ist der Vista Bootmanager in der BCD-Datenbank beschädigt. Oder dieser Fehler erscheint:
File: \Boot\BCD
Status: 0xc0000098

Dann fehlt die zum Booten benötigte BCD-Datenbank vollständig.

Achtung: Ich übernehme keine Garantie dafür, dass der hier beschriebene Vorgang funktioniert. Es sind tiefe Eingriffe in das System möglich/nötig, wo unter Umständen ein großer Datenverlust entstehen kann. Deswegen vorher unbedingt ein Backup anlegen!

Hintergrund: Wenn der Grub-Bootloader Windows Vista startet, ruft er zuerst den Vista-Bootmanager auf. Wenn dieser normal funktioniert, bekommt man ihn gar nicht zu Gesicht, da er direkt Windows startet. In unserem Fall ist der Bootmanager aber durch irgendeinen Grund beschädigt. Das Problem ist, dass die Windows DVD, die den Bootmanager eigentlich reparieren kann, die Windowsinstallation nicht findet, weil der Grub-Bootloader davor geschaltet ist.
Ein Lösungsweg, den ich hier beschreibe, ist:
  1. Grub entfernen

  2. Mit der Windows DVD den Vista Bootmanager reparieren

  3. Grub wieder installieren

Dieser Weg hat bei mir einwandfrei funktioniert.

Grub entfernen


Ich habe mein openSUSE gebootet und mir erst einmal den Partitionsmanager GParted runtergeladen (einfach per YAST). Dort habe ich dann das Boot-Flag anstatt bei der Linux Partition bei der Windows Partition gesetzt.
Screenshot Partitionsmanager GParted
Beim Booten wird Grub nun ignoriert und direkt Windows gestartet (was aber in einer Fehlermerldung endet).

Mit der Windows DVD den Vista Bootmanager reparieren


Dies ist relativ einfach. Man muss nur von der Vista DVD booten, Computerreparation den Computer automatisch reparieren lassen und neustarten. Anschließend sollte Windows wieder normal starten (nur Grub fehlt, das openSUSE-System ist also nicht bootbar).

Grub wieder installieren


Hierzu booten wir den Computer von der openSUSE-Installations-DVD, mit der das System auch installiert wurde. Unter dem Menüpunkt Installiertes System reparieren wählen wir Automatische Reparatur aus. Nun werden alle installierten Komponenten überprüft, auch der Bootloader. An dem Punkt findet die Reparaturroutine einen Fehler und fragt, ob der Bootmanager repariert werden soll. Nach der Bestätigung wird die Grub-Bootmanager-Konfiguration angezeigt, bei welcher aber eventuell die Windows-Installation fehlt. Diese muss noch hinzugefügt werden. Mit Hinzufügen und der Auswahl von Chainloader-Abschnitt kann Windows hinzugefügt werden. Bei Abschnitsname tragen wir beispielsweise "Windows Vista" ein und bei Anderes System muss die Windowspartition ausgewählt werden (z.B. \dev\sda1, wenn Windows auf der ersten Partition installiert ist).
Nachdem der Booteintrag mit OK hinzugefügt wurde, führt man die Reparatur noch zu Ende aus und startet das System neu. Jetzt müsste alles funktionieren.

Der beschriebene Weg hat bei mir nach vielem Tüfteln am einfachsten funktioniert. Mein System konnte ich mit den Windowskommandos bootrec.exe, bootsect.exe und bcdedit.exe in der Windows-Eingabeaufforderung der Windows DVD nicht reparieren. Falls der obige Lösungsweg nicht funktioniert, wären diese Kommandos aber vielleicht einen Versuch wert.

Keine Kommentare:

Kommentar veröffentlichen