Bootloader reparieren nach Festplattenwechsel

LukeLR101

Cadet 4th Year
Registriert
Okt. 2015
Beiträge
72
Hallo,
ich habe in meinem Notebook die bisher eingebaute SSD gegen eine größere ersetzt. Ich habe die neue SSD partitioniert, und dann die alten Partitionen mittels dd auf die neuen Partitionen kopiert. Danach habe ich Grub neu installiert, und konnte das installierte Arch Linux sofort wieder booten. Beim auswählen des Windows-Starteintrages kam allerdings sofort ein Bluescreen mit einer Fehlermeldung, die mit dem Booten im Zusammenhang stand.

Also dachte ich mir, klarer Fall, muss ich den Windows-Bootloader neu schreiben. Ich kann ja auch erstmal Grub im MBR überschreiben, sodass Windows wieder startet, und danach Grub nochmal installieren. Habe mir also ein Windows 8.1-Wiederherstellungslaufwerk gemacht, und die Kommandozeile davon aufgerufen. Allerdings lässt sich der Bootloader offenbar nicht reparieren.

bootrec /fixmbr funktioniert, bootrec /fixboot oder bootrec /rebuildbcd melden beide nur "Element nicht gefunden".

Ich hatte den Verdacht, die Partition könnte einfach nicht mehr aktiv sein. Habe sie also mittels diskpart aktiv markiert. Nun lautet die Fehlermeldung statt "Element nicht gefunden" "Das angeforderte Systemgerät kann nicht gefunden werden". Starten tut Windows nach wie vor nicht, der Grub ist verschwunden, und beim starten erwartet mich nur der Intel PXR Bootmanager.

Wie kann ich den Bootloader neu Schreiben? Die Linux-Installation an's laufen zu kriegen wird kein Problem sein, ist ja Linux. Es geht mir erstmal nur darum, dass mein Windows 8.1 als Single Boot wieder funktioniert. Für jegliche Ideen bin ich sehr dankbar!

Grüße, Lukas
 
Zuletzt bearbeitet:
Ist bei den zahlreichen Google Treffern wirklich nichts für dich dabei?! Wie sowas? (nur als Beispiel)

EDIT: dein sehr umfangreicher Edit (ca 90% mehr Text) hätte auch eher da stehen können ;)
 
Zuletzt bearbeitet:
Ja, die in deinem verlinkten Beispiel verwendete automatische Reparatur habe ich mittlerweile auch schon probiert, leider genauso erfolglos (Das System konnte nicht repariert werden). Tut mir Leid, der Beitrag wurde schon abgeschickt, als ich nur eine Vorschau sehen wollte.
 
Ja ok, passiert. Eine neue Installation kommt nicht in Frage wenn das Übliche nicht funktioniert?
 
Hast du im BIOS etwas umgestellt? Bluescreens treten zB auf wenn man den Sata-Modus umstellt.
 
In die Computer Reperatur gehen und dort dann die Konsole (Eingabeaufforderung) öffnen und folgendes eingeben:

bootrec /rebuildbcd

bootrec /fixboot
 
@coasterblog Nein, eigentlich nicht, es war ein großer Aufwand, die Treiber für mein jetziges System zusammenzusuchen, und alles an's Laufen zu kriegen, das würde ich wirklich gerne vermeiden. Was kann ich denn noch versuchen?
@Hazerkas umgestellt habe ich nichts, nur die Platten getauscht, nachdem ich alles übertragen hatte.
 
Hast du schon mein Vorschlag ausprobiert?
 
Ja, wie in meinem ursprünglichen Beitrag geschrieben, eigentlich schon, wollte jetzt aber nochmal genau auf die Reihenfolge achten, vielleicht macht das ja einen Unterschied ;)
 
Wenn es wirklich einen BlueScreen gibt, wurde Windows ja geladen oder zumindest angeladen. Und dann wären die Spielerein mit der Bootumgebung sinnlos. Ich vermute fast, in der BootCfg müssen nur die Parameter device und osdevice angepasst werden. Wofür man BCDEDIT an Board hat. Da kann ich bei Bedarf näher drauf eingehen, wenn ich weiß, dass ich das nicht umsonst schreibe.

Den MBR kannst du so wiederherstellen:
Code:
bootsect /nt60 X:

Das Tool befindet sich ebenfalls auf der Windows-DVD oder Partition onBoard. Wobei X: durch die entsprechende Partition zu ersetzen ist. Die Boot-Configuration + Bootloader, kannst Du mit dem ebenso Windows eigenen Tool BCDBOOT neuschreiben. Siehe bcdboot /?

Von BOOTSECT rate ich dir aber erstmal ab, da du ja mit Grub einen funktionierenden BootLoader hast, indem Windows bereits eingebunden ist. Mit BCDBOOT kannst Du zwar drübergehen, hast dann aber u.U. einen toten Eintrag. (Den man natürlich im Zweifel auch löschen kann.)
 
Zuletzt bearbeitet von einem Moderator:
Habe es jetzt mal genau in der Reihenfolge ausgeführt, und es macht offenbar tatsächlich einen Unterschied. Zuerst kam bei beiden Befehlen nach wie vor "Element nicht gefunden", aber nachdem ich die Partition nochmal als aktiv gesetzt habe, funktionierte es. Nach /rebuildbcd kam zwar trotzdem "Das angegebene Systemgerät…" (wie oben), aber /fixboot funktionierte dann.

Leider erhalte ich jetzt eine Fehlermeldung vom Boot Manager:
image.jpeg
Ergänzung ()

Leider geht es ja nicht um den Grub, sondern um den Bootprozess des Windows…
Ergänzung ()

@A d00d Wie müsste ich denn diese Parameter überarbeiten?
 
A d00d schrieb:
Ich vermute fast, in der BootCfg müssen nur die Parameter device und osdevice angepasst werden.

Nach dem Bild bin ich sogar recht sicher. Das Reperarien per Konsole ist ziemlich unhandlich...

Erstmal die Boot-Partition ausfindig machen. Die auf der sich boot/bcd befindet. Dann: bcdedit /store "X:\boot\bcd"
In der Ausgabe schaust du nach ID / Description / Bezeichner des Windows 8 Eintrags, z.B: {223e04f6-3a93-11e3-8258-001a4d4b6e86}

Aufpassen, dass du den richtigen nimmst! - Dann geht es so weiter:
Code:
bcdedit /store "X:\boot\bcd" /set {223e04f6-3a93-11e3-8258-001a4d4b6e86} osdevice partition=Y:

bcdedit /store "X:\boot\bcd" /set {223e04f6-3a93-11e3-8258-001a4d4b6e86} device partition=Y:

Wobei Y: deine Windows-Partition ist. Danach neustarten und hoffen. ;)

PS: Probiere erstemal nur osdevice. Kann gut sein, dass der device Parameter nur für VHDs ist.
Schaden sollte es aber eigentlich auch nicht.

Die Ausgabe kannst du am besten in eine .txt Datei umleiten und die ID dann dort rauskopieren.
Code:
bcdedit /store "X:\boot\bcd" >> bcd.txt

Achja, boot/bcd wird es 2x geben. eimal auf der SSD und einmal auf der DVD.
X:\boot/bcd sollte der auf der dvd sein! -Hoffe das liest sich nun nicht zu wirr. :D
Sry...
 
Zuletzt bearbeitet von einem Moderator:
Nein, ist verständlich, auf keinen Fall zu wirr ;) Bin auch mit dem Terminal vertraut, zwar eher unter Linux, aber ich traue mir das zu :D werde es jetzt direkt mal ausprobieren ;)
 
Ist schon spät.... anscheinend hattest du nu mit den BOOTREC Spielereien eine neue BootCfg angelegt. Da hatte ich jetzt nicht richtig aufgepasst. Ich gehe also davon aus, du hattest die Boot-Partitionen gar nicht mit geclont, sondern nur die OS-Partitionen? - Möglich dass das mit BCDEDIT oben trotzdem läuft. Was ansonsten aber auf jedenfall gehen sollte, wenn es gleich noch nicht läuft:

Code:
bcdboot E:\Windows /l de-DE /s X:

X: bestimmt die Partition, auf die die Bootdateien geschrieben werden. Das kann auch die Windows Partition selber sein.
Mach das am besten direkt mal. Viel Erfolg noch.

Edith hat grade wieder angerufen:
X: sollte am besten die Partition sein, die in der grub.cfg als Partition von Windows bzw. bootmgr angegeben ist.
Oder diese eben entsprechend anpassen.
 
Zuletzt bearbeitet von einem Moderator:
Also zunächst mal zu deinem vorherigen Beitrag:
Ich habe das jetzt mal ausprobiert, und bin deinen Anweisungen erfolgt. Auch unter dem Installationsmedium ist meine Windows-Partition als C:\ eingehängt, was sich durch dir C:\ bzw. tree C:\ leicht überprüfen lies. Also habe ich den Befehl
Code:
bcdedit /store C:\boot\bcd
ausgeführt, worauf mir allerdings die Fehlermeldung präsentiert wurde: Die Datei oder der Ordner ist nicht vorhanden. Und tatsächlich, laut dir C:\ bzw. dir C:\boot gibt es tatsächlich keinen Ordner boot und keine Datei bcd darin.

Daraufhin habe ich mir die Argumente von bcdedit anzeigen lassen, und dort das Argument /createstore entdeckt. Da es ja offenbar keine bestehende Konfiguration gab, gab es auch nichts, was ich zu überschreiben Gefahr laufen könnte, also habe ich das Kommando
Code:
bcdedit /createstore C:\boot\bcd
einfach mal ausgeführt (den Ordner boot natürlich vorher erstellt). Der Prozess war erfolgreich, und daraufhin existierte eine entsprechende Datei. Dennoch erhielt ich beim Neustart einen Bluescreen, und bcdedit bestätigte mir, dass die Datei (trotz einer Größe von genau 8K) leer sei.

Da ich in den von dir beschriebenen Kommandos UUIDs zu erkennen glaubte, hatte ich die Idee, unter meinem laufenden Linux-System die UUID der Windows-Partition auszulesen. Doch blöderweise hat NTFS ja gar keine UUIDs im herkömmlichen Sinne, sondern nur eine kürzere, ungegliederte Volume Serial Number. Mist. Jetzt weiß ich also nicht, was ich in die neu erstellte bcd-Datei reinschreiben soll, da ich die IDs nicht auslesen kann. Werde aber jetzt erstmal mal deinen zweiten Post ausprobieren ;) Vielen Dank schonmal!
Ergänzung ()

So, habe mich jetzt mal deinem zweiten Posting gewidmet, leider ebenfalls ohne Erfolg. Der von dir angegebene Befehl endet lediglich mit einem "Fehler beim Kopieren der Startdateien". Ich hasse es, dass Windows so wenig sagt, bei Linux kann man wenigstens die genaue Ursache herausfinden, und selbst etwas dagegen unternehmen. Hier ist man mehr oder weniger hilfslos, solange man keine Vorkenntnisse hat -.-

Aber davon mal abgesehen: Ich habe X: in dem Befehl natürlich beim Eintippen durch C: ersetzt. Habe es auch mal mit X:\Windows statt E:\Windows probiert (X:\ ist das gebootete Wiederherstellungslaufwerk). Leider mit selbigem Resultat. X:\ enthält eine boot\bcd, diese hilft mir aber nicht weiter, da sie natürlich nur die ID des Wiederherstellungsmediums enthält.

E:\ existiert tatsächlich, und ist die 350MB große "System-reserviert" Partition zu Beginn meiner Festplatte, die ich, entgegen deiner Annahme, natürlich genauso geklont habe wie mein Windows- und mein Linux-Installationsvolume. E:\ ist allerdings leer, enthält lediglich eine 0 Byte große Recovery.txt im Root-Verzeichnis.

Was kann ich jetzt tun? Es muss doch eine Möglichkeit geben, bei Windows den Bootloader neu zu schreiben. Normalerweise hat mir bootrec.exe auch immer treue Dienste geleistet, aber jetzt? Ich hoffe mal, dass sich eine Lösung finden lässt! Ich bedanke mich jedenfalls erneut vielmals für die Mühen! ;)
 
Also... E: ist die System-Reserved, also die Windows Boot-Partition. Und C: ist Windows.
Demnach muss es so funktionieren: bcdboot C:\Windows /l de-DE /s E:
E:\boot\bcd am besten vorher löschen oder umbennen.

Du kannst zwar auch C: für den /s Parameter verwenden. Nur gehe ich davon aus, dass das Linux-Setup GRUB nicht für die dynamische Suche nach dem Windows-Bootloader konfiguriert hat, sondern feste Pfade verwendet. Also wirst du die grub.cfg in dem Fall anpassen müssen. Die System-Reserved-Partition wäre in dem Fall auch obsolet.


Der korrekt Weg aus Vorschlag 1:
Code:
bcdedit /store E:\boot\bcd
bcdedit /store "E:\boot\bcd" /set {Deine ID bla bla} osdevice partition=C:

So hätte das auch geklappt. Wegen dem BOOTREC-Gedöns, würde ich das BCD-File auf E: nun aber löschen/umbennen und mittels BCDBoot alles sauber neuschreiben.
 
Zuletzt bearbeitet von einem Moderator:
Nach wie vor leider eine Fehlanzeige. Ich kann es nicht fassen, dass hier offenbar alle Stricke reißen. Kann doch nicht sein, dass dieses eigentlich recht übersichtliche Problem nicht zu lösen ist?

Das von Dir vorgeschlagene Kommando bcdboot C:\Windows /l de-DE /s E: terminiert zwar mit der erfolgsversprechenden Ausgabe: Die Startdateien wurden erfolgreich erstellt, aber das Booten endet nach wie vor in dem bekannten Bluescreen. Dabei habe ich sogar extra nochmal die grub.cfg neu generiert, wobei sowohl /dev/sda2 (die Windows-Partitionen) als auch /dev/sda1 (die "System-reserviert"-Partition E:\) als Startmedien erkannt wurden. Also zwei Booteinträge im Auswahlmenü, beide funktionieren nicht.

Mir ist aufgefallen, dass bcdboot offenbar von einem EFI-System ausgeht, ich setze aber (glaube ich) noch BIOS ein, zumindest ist meine Partitionstabelle MBR und nicht GPT. Habe also mal versucht, gezielt für BIOS die BCD-Dateien zu erzeugen, indem ich ein /f BIOS an die oben bereits genannte Befehlszeile angehängt habe - den Anweisungen von bcdboot /? zufolge kann so der Typ der Startdateien festgelegt werden. Erneut erscheint eine Erfolgsmeldung, dir E:\ zeigt aber die ernüchternde Wahrheit - es besteht weiterhin nur der Ordner E:\EFI, kein Ordner E:\boot\bcd, und starten funktioniert weiterhin nicht. Die Befehle mit bcdedit kann ich leider nicht anwenden, da ich meine ID nicht kenne. bcdedit /store "E:\boot\bcd" gibt nur eine Fehlermeldung zurück, vermutlich, weil diese Datei leer ist.

Es muss doch eine Lösung geben, es kann doch nicht unmöglich sein, den Bootloader neu zu schreiben. Irgendwelche Ideen, wie man das lösen kann?
Ergänzung ()

Jetzt ist mir etwas ganz merkwürdiges passiert: Ich wollte gerade nochmal Screenshots von den Fehlermeldungen beim Booten von C:\ bzw. E:\ machen, doch beim Auswählen des Eintrages für C:\ startete Windows 8 plötzlich ganz normal. Offenbar hat eines der bcdboot-Kommandos jetzt doch funktioniert, auch wenn es erst nicht der Fall war.

Dafür habe ich jetzt aber ein ganz anderes, noch viel merkwürdigeres Problem: Windows fährt nicht mehr herunter. Wähle ich "Herunterfahren", so startet sich der PC sofort neu. Allerdings nicht so, dass erst wieder das Herstellerlogo kommt, und dann der GRUB, sondern Windows 8 fährt nach dem Herunterfahren sofort wieder hoch. Neustarten funktioniert dagegen wie gewohnt, es erscheint das Herstellerlogo und dann der GRUB-Auswahlbildschirm. Nur kann ich meinen Computer jetzt nicht mehr Herunterfahren, wenn ich Windows benutzt habe. Woran könnte das liegen?

Auf C:\ existieren jetzt sowohl ein Ordner boot mit einer Datei bcd, als auch ein Ordner EFI mit entsprechendem Inhalt. Wird vielleicht der EFI-Modus genutzt, auch wenn GRUB eigentlich in der BIOS-Variante installiert ist? Weil die Datei C:\boot\bcd müsste ja eigentlich leer sein, zumindest konnte ich manuell keine Einträge vornehmen, da mir die ID ja nicht bekannt war. Irgendwelche Ideen? Booten von E:\ geht weiterhin nicht (was ja auch nicht schlimm ist), aber dort habe ich ja die ganze Zeit versucht, die Booteinträge zu erstellen.
 
Öffne die Konsole und gib dort folgenden Befehl ein:

sfc /scannow

Daraufhin wird das Dateisystem auf etwaige Fehler überprüft!
 
Diskpart meint zwar, dass das Dateisystem fehlerfrei wäre, aber ich werde das gleich mal probieren. Danke schonmal ;)
Ergänzung ()

Habe es gerade mal getestet, und sfc bestätigt, dass keine Integritätsfehler in den Systemdateien vorliegen. Trotzdem lässt sich der Computer nicht herunterfahren. Irgendwelche Ideen?

Ist echt merkwürdig, erst die Probleme mit dem Booten, jetzt mit dem Herunterfahren... -.-
Ergänzung ()

Habe mal versucht, per msconfig.exe den sicheren Start zu aktivieren, um zu überprüfen, ob das Problem dann weiterbesteht. Dabei ist mir aufgefallen, dass meine Windows-Installation offenbar gar nicht erkannt wird, auch wenn das Starten jetzt (mysteriöserweise) wieder funktioniert:
IMG_2016-04-05 20:58:31.jpg

Weil ich keine Lust habe, weiterhin Zeit auf dieses Windows-8-Problem zu investieren, werde ich Windows jetzt einfach komplett neuinstallieren. Auch, wenn das bedeutet, dass ich sämtliche Treiber wieder zusammensuchen und alle Programme neu installieren muss. Ich habe das Gefühl, dieser Zeitaufwand ist deutlich kürzer als der Zeitaufwand dafür, das Problem zu lösen. Ich kann einfach nicht verstehen, warum Windows da so kompliziert ist. Linux hat gar keine Probleme gemacht, ich habe nur einmal den GRUB neu geschrieben, und die Kiste lief wieder. Aber die Erstellung des Windows-Bootloaders scheint ja deutlich komplizierter, zumal die Routinen offenbar nicht einwandfrei funktionieren. Dazu kommt, dass Microsoft offenbar nicht in der Lage ist, seinen Konsolenprogrammen aussagekräftige Fehlermeldungen zu spendieren, mit denen man etwas anfangen kann. "Der Zugriff auf das Systemgerät ist fehlgeschlagen" o.ä. gibt mir als Informatiker keinerlei Ansatzpunkt, das Problem zu beheben. Da ist Linux doch deutlich hilfreicher. Generell kann ich nicht verstehen, warum dieses ganze Problem so ausartet unter Windows, wo es unter Linux doch in Nullkommanix behoben war. Am liebsten würde ich Windows komplett in die Tonne werfen, wäre ich nicht durch Programme wie Photoshop&Co. daran gebunden... :/

Ich bedanke mich also an dieser Stelle nochmal vielmals für die vielfältige Hilfe, die Mühen und die Zeit, die hier gespendet wurde ;) Es war ja auch nicht umsonst, denn es hat ja sogar funktioniert, ich werde mir die Befehle für die Zukunft merken, sicherlich noch oft auf diesen Thread zurückgreifen, und möglicherweise werden auch andere hilfesuchende davon profitieren ;) Aber in meinem Fall braucht Windows wohl einen neuen Kaltstart, schätze ich, auch wenn es doch so einfach sein könnte... :(
 
Zurück
Oben