2012-08-12 18:06:22 +0000 2012-08-12 18:06:22 +0000
123
123
Advertisement

Wie kann ich den Windows 8 EFI-Bootloader reparieren?

Advertisement

Vor einigen Tagen habe ich Windows 7 und Windows 8 im EFI-Modus auf einer Festplatte installiert. Heute wurde der Bootloader vermisst/beschädigt.

Ich habe derzeit das Windows 8-Installationsprogramm auf einem Flash-Laufwerk und habe versucht, die Option Automatische Reparatur zu verwenden, um den Bootloader zu reparieren, aber es hat nichts gebracht. Die Option Startup Repair fehlt auch im Windows 8-Installationsprogramm.

Wie kann ich den EFI-Bootloader von der Eingabeaufforderung aus reparieren/neu erstellen?

BCDEDIT gibt die folgende Meldung zurück:

The requested system device cannot be found.
Advertisement
Advertisement

Antworten (10)

182
182
182
2012-11-12 00:27:03 +0000

Ich habe viel Zeit damit verbracht, meinen Windows 8-PC nach dem Klonen auf eine neue SSD wieder zum Booten zu bringen, und versuche zusammenzufassen, wie ich schließlich alles zum Laufen gebracht habe -

Zuerst boote ich von einer UEFI-Windows 8-Wiederherstellungsdiskette (CD/DVD/USB) - ich fand heraus, dass der automatische Wiederherstellungsprozess weder die richtige Windows-Partition fand, noch wenn ich es schaffte, sie zu den BCD-Einstellungen hinzuzufügen, würde er sie zuverlässig bootfähig machen. g. Mit BCDEDIT konnte ich die Windows-Partition finden und starten, aber sie weigerte sich, einen Kaltstart durchzuführen oder “behielt” die Einstellungen nach einem zweiten Neustart oder Ausschalten nicht bei.

Gehen Sie zu den erweiterten Optionen und starten Sie die Eingabeaufforderung.

Geben Sie diskpart ein, um das Tool DiskPart zu verwenden, um sicherzustellen, dass Sie alle richtigen Partitionen haben, und um Ihre EFI-Partition zu identifizieren - das Wichtigste dabei ist, dass Ihre EFI-Partition als FAT32 formatiert ist:

DISKPART> sel disk 0

Disk 0 is now the selected disk.

DISKPART> list vol

  Volume ### Ltr Label Fs Type Size Status Info
  ---------- --- ----------- ----- ---------- ------- --------- --------
  Volume 0 E DVD-ROM 0 B No Media
  Volume 1 C NTFS Partition 195 GB Healthy Boot
  Volume 2 WINRE NTFS Partition 400 MB Healthy Hidden
  Volume 3 FAT32 Partition 260 MB Healthy System

Dann weisen Sie der EFI-Partition einen Laufwerksbuchstaben zu:

DISKPART> sel vol 3

Volume 3 is the selected volume.

DISKPART> assign letter=b:

DiskPart successfully assigned the drive letter or mount point.

Beenden Sie das Tool DiskPart durch Eingabe von exit und führen Sie an der Eingabeaufforderung Folgendes aus:

cd /d b:\EFI\Microsoft\Boot\

bootrec /fixboot

Löschen oder benennen Sie die BCD-Datei um:

ren BCD BCD.bak

Verwenden Sie bcdboot.exe, um den BCD-Speicher neu zu erstellen:

bcdboot c:\Windows /l en-gb /s b: /f ALL

Der Parameter /f ALL aktualisiert die BIOS-Einstellungen einschließlich UEFI-Firmware/NVRAM, /l en-gb ist für das Gebietsschema UK/GB zu lokalisieren. Die Lokalisierung ist standardmäßig auf US-Englisch eingestellt, oder verwenden Sie en-US.

Starten Sie neu und drücken Sie die Daumen.

Dies bereitete mir Kopfschmerzen. Ich drehte mich lange Zeit im Kreis. Zum Zeitpunkt des Schreibens gibt es nicht viele zuverlässige Informationen über die Behebung von UEFI/Windows 8.

[EDIT]

Um Hyper-V wieder zu aktivieren, musste ich nach dem Neustart von einer Administrator-Eingabeaufforderung innerhalb von Windows auch Folgendes ausführen:

bcdedit /set {default} hypervisorlaunchtype Auto
bcdedit /set {default} nx OptIn
22
22
22
2012-12-12 06:01:57 +0000

Die anderen Antworten sind hilfreich, aber das war es, was ich tun musste, um meine zu beheben.

Ich hatte eine 1,5 TB-Festplatte mit Windows 7 darauf installiert. Dann installierte ich Windows 8 auf einer 150-GB-SSD, die ich gekauft hatte. Die 1,5-TB-Festplatte fiel aus, und ich konnte hören, wie sie ein Geräusch machte, mein Computer startete nicht mehr und sagte: “Bitte legen Sie die Systemdiskette ein”. Ich dachte, dass der Bootloader fehlte, da er sich auf der 1,5-TB-Festplatte befunden haben musste. Es stellte sich heraus, dass es so war, aber das Problem war dann, dass die Anleitungen, die ich befolgte, den Bootloader oder wie auch immer er genannt wird, nicht wiederherstellen konnten, da ich keine EFI-Partition auf der kleineren 150-GB-Platte hatte (diese könnte auf der ausgefallenen Platte vorhanden gewesen sein), sondern nur eine Partition, die die gesamte Platte ausfüllte.

Ich wollte nicht alle meine Daten verlieren, also gab ich die Eingabeaufforderung ein, indem ich von meinem Windows 8-Installations-USB-Laufwerk bootete (wobei ich anmerkte, dass Sie die UEFI-Version nicht booten können, wenn diese erscheint, wählen Sie, nur von dem USB-Laufwerk zu booten, ohne dass die UEFI davor erscheint).

Einmal in der Eingabeaufforderung (siehe die anderen Antworten für Anweisungen) müssen Sie die Partition verkleinern. Geben Sie dazu die folgenden Befehle ein und drücken Sie nach jedem Befehl die Eingabetaste:

diskpart

list disk

select disk 0

list partition

select partition 1

shrink desired=200 minimum=200

create partition efi

list partition

select partition 2

format fs=fat32

Diese Befehle erstellen die EFI-Partition. Überprüfen Sie alles doppelt, indem Sie list vol eingeben. Sie sollten eine Partition von 200 MB sehen. Sie müssen ihr nun einen Buchstaben zuweisen. Dies tun Sie, indem Sie assign und dann noch einmal list vol eingeben, um zu sehen, welcher Buchstabe zugewiesen wurde.

Nun ist dies getan, Sie müssen die Boot-Dateien auf diese neu erstellte Partition kopieren:

bcdboot C:\Windows /l en-gb /s B: /f ALL

Hinweis: Sie müssen C: durch den Laufwerksbuchstaben der Partition ersetzen, die Windows enthält, und B: durch den Buchstaben, der der EFI-Partition zugewiesen wurde, die Sie gerade erstellt haben.

Ich habe auch die folgenden Befehle eingegeben:

bootrec /fix

bootrec /fixmbr

Diese beiden kamen erfolgreich zurück, keine Ahnung, ob sie wirklich etwas taten, aber wen interessiert das. Windows ist jetzt vollständig wiederhergestellt.

9
Advertisement
9
9
2012-11-28 03:14:27 +0000
Advertisement

Okay, ich hatte Zeit, hier eine ordentliche Gliederung zusammenzustellen. Er ist lang, aber er ist ziemlich vollständig und sollte Ihnen helfen, zu erkennen, was vor sich geht.

Zunächst kann dies auf eine Art geschehen:

  1. Ihr BIOS verliert seine Einstellungen:
  2. Kein Problem, der ganze Kram ist in der EFI-Partition gespeichert.
  3. …außer der Einstellung SATA IDE vs. AHCI, aus offensichtlichen Gründen.
  4. Haben Sie SATA-AHCI benutzt? Wahrscheinlich benutzen Sie jetzt SATA-IDE.
  5. Haben Sie versucht zu booten, bevor Sie das herausgefunden haben?
  6. Wenn ja, ist es fehlgeschlagen. Haben Sie es von Windows versuchen lassen?
  7. Falls ja, BLAM, könnte es sehr wohl die Boot-Konfigurationsdatenbank zerstört haben.
  8. Vergewissern Sie sich, dass Sie die richtige SATA-Einstellung verwenden, die Sie beim letzten Mal verwendet haben.

Hier ist, was Sie wahrscheinlich inzwischen getan haben. WENN IRGENDWELCHES NICHT ZUSAMMENFASSEN IST, WÄHLEN SIE SORGFÄLTIG AUS, OB DAS IHR PROBLEM GEFÄLLT IST, und LESEN Sie es nach Ideen durch, aber folgen Sie ihm nicht, ohne vorher nachzudenken.

  1. Sie haben hoffnungsvoll den ganzen Mist über das Reparieren des Master Boot Record (MBR), der Partitionstabelle, der Partitionsflags und anderen Müll ignoriert, der NICHT auf ein EFI-Boot-Szenario zutrifft. ALLES. Im besten Fall wären Sie in der Lage, eine neue, nicht verwandte NON-EFI-Boot-Lösung komplett neu zu erstellen. Das könnte jedoch nicht trivial sein, denn:
  2. Sie haben herausgefunden, dass Windows sicher ist, dass es keine Bootkonfigurationsdatenbank hat, aber leider ist es entweder völlig ratlos oder SEHR sicher, wohin es geht - Sie können nicht genau sagen, wohin es geht.
  3. Sie wissen, dass der Boot-Speicher normalerweise (somewhere)\Boot\BCD ist und dass die Datei HIDDEN ist; sehen Sie sie sich mit dir /a:hs an.
  4. Sie haben sich ein wenig mit BCDedit.exe vertraut gemacht und herausgefunden, dass Sie damit eine Bootkonfigurationsdatenbank in einer Staging-Datei mit /CreateStore “mocken” können (und bitte nennen Sie sie nicht “BCD”), dass Sie die Staging-Datei explizit mit der Option /Store verwenden können, dass Sie mit /Create {bootmgr} einen Menüeintrag für den Windows-Bootmanager hinzufügen können und dass Sie sie mit /Import… importieren könnten 5. …aber wenn Sie das versuchen, können Sie es nicht. Sie schauen sich die Option /SysStore an, was richtig klingt, aber Sie können sie nicht dazu bringen, einen anderen Store zu verwenden, weil sie “mehrdeutig” ist. Sie haben eine Ahnung, dass es weiß, wo das Geschäft ist - oder sein sollte - aber Sie können es nicht finden.
  5. Sie haben versucht, MountVol zu benutzen, um die EFI-Partition zu mounten, aber es wird nicht einmal in der Liste angezeigt, also können Sie es nicht.

Wenn all das ziemlich genau auf Sie zutrifft, dann kann folgendes passieren:

  1. Windows kann erkennen, dass Sie für EFI eingerichtet sind (Sie haben die DVD über einen UEFI-Boot gebootet, Sie haben eine EFI-Partition usw.).
  2. Es weiß also, WO DIE BCD-Datei zu suchen ist - allerdings hat es entweder irgendwie den falschen Speicherort (nicht dieses Problem, aber ähnlich) oder die BCD wurde gelöscht.
  3. Anscheinend, weil es weiß, wo es sein SOLLTE, bricht dies /SysStore– und eigentlich ist das wahrscheinlich richtiges Verhalten, denn sonst würden Sie es an die falsche Stelle legen.
  4. Soweit ich das beurteilen kann, versteckt MountVol absichtlich die EFI-Partition (oder ist irgendwie unfähig, sie zu bemerken). Dadurch wird verhindert, dass das Dateisystem gemountet wird, was das Auffinden des richtigen Unterverzeichnisses, die Überprüfung, ob die Datenbank existiert, usw. verhindert.

Hier ist also schließlich, was Sie dagegen tun müssen. Die gute Nachricht ist, dass es wahrscheinlich viel einfacher ist, als Sie sich das jetzt erhoffen.

  1. Sie müssen in der Tat die EFI-Partition mounten.

Eigentlich habe ich eine Vermutung, die nicht streng korrekt ist - ich vermute stark, dass die EFI-Partition _bereits von einem internen Subsystem gemountet ist, weshalb BCDedit komisch wird - es sieht die Datenbank nicht, aber es weiß, wohin es gehen soll. Was es jedoch nicht hat, ist ein Laufwerksbuchstabe. Also - was ist zu tun?

Nun… wie weit reichen Ihre DOS-Wurzeln zurück? Erinnern Sie sich an den Befehl Assign? Raten Sie mal.

  1. Beginnen Sie DiskPart.
  2. Wenn Sie mit DiskPart nicht vertraut sind, funktioniert es im Grunde wie eine Hierarchie von Mengen; Sie müssen genau ein Element auf einer Ebene auswählen, um zur nächsten zu gelangen. Also, List Disk, und dann Select Disk n, wobei n das ist, was für Sie geeignet ist.
  3. Benutzen Sie List Partition und List Volume (beachten Sie den Nicht-Plural), um einen Einblick zu erhalten und Ihre EFI-Partition zu identifizieren.

Es handelt sich normalerweise um eine 100MB FAT32-Partition, die mit System gekennzeichnet ist. Denken Sie daran, dass Ihre Festplatte inzwischen eine GPT-Partitionstabelle verwenden sollte, so dass Sie vielleicht eine ganze Reihe von Partitionen sehen. Einige davon sind für die Notfallwiederherstellung gedacht - bei EFI-Problemen nützen sie sehr viel, nicht wahr? Nun gut.

Beachten Sie, dass die EFI-Partition, und ein paar andere, keine Laufwerksbuchstaben haben. Wenn Sie so geneigt sind, können Sie sich auch die GPT-Partitionsattribute ansehen, was Ihnen auch ein paar tangential-bezogene “Aha”-Momente geben kann. 5. Select Partition n wobei n die EFI-Partition ist. (Ich nehme an, Sie könnten stattdessen das Volume auswählen, wenn Sie es brauchen.) 6. Assign. Das war’s. Geben Sie keinen Laufwerksbuchstaben an; nur Assign. 7. Sie sollten jetzt einen Laufwerksbuchstaben sehen, der der EFI-Partition zugewiesen ist. 8. List Volume DiskPart.

Und jetzt… eine dicke fette Warnung. Sie werden wahrscheinlich gehen Sie direkt zu S: (oder was auch immer Sie aus Exit haben) und bemerken eine Boot-Partition. “AHA!” Sie werden sagen. “Hier gibt es keine Assign-Datei!” Zuerst… denken Sie daran, dass die Datei versteckt ist. Zweitens… graben Sie etwas mehr herum, und Sie werden feststellen, daß, während BCD und auch S:\EFI\Boot

vorhanden sind, Sie beide auf Probleme überprüfen müssen.S:\EFI\Microsoft\Boot ist für das Motherboard, und enthält den Windows Boot LOADER (und möglicherweise andere Dinge für andere Betriebssysteme). Dies hat diesen Namen, weil das Motherboard keine Ahnung hat, ob Sie Windows haben werden oder nicht, und einen festen Pfad benötigt, der Sinn macht. 9. Untersuchen Sie S:\EFI\Boot. Für Windows 7 Professional, 64-bit, sollten Sie sehen: S:\EFI\Boot Wenn Sie eine EFI-Shell installiert haben (immer eine gute Idee), sehen Sie vielleicht zusätzlich bootx64.efi.

HINWEIS: Benutzer von Dual-Boot-Linux mit shellx64.efi werden hier KEINEN zusätzlichen Eintrag sehen. 10. Für Windows 7 Professional, 64-Bit, sollten Sie eine Reihe von Sprachvorlagen (chainloader+1 usw.) und die folgenden Dateien sehen: bootmgr.efi bootmgfw.efi memtest.efi BCD BCD.Backup.001 BCD.Backup.002 …außer dass Sie S:\EFI\Microsoft\Boot wahrscheinlich nicht sehen, oder? Aber diese Sicherungsdateien sehen wirklich verlockend aus: 11. Bestimmen Sie, welche Sicherungsdatei Sie verwenden wollen. Welche Änderungen auch immer in letzter Zeit fehlen, sie sind bei weitem nicht so wichtig wie Ihre Fähigkeit, das System zu starten, also entscheiden Sie sich für diejenige, die am intaktesten ist. Wahrscheinlich werden Sie eine große und eine ziemlich kleine Datei sehen. Das kleine ist bereits korrupt und ein Artefakt des fehlgeschlagenen Reparaturprozesses - verwenden Sie es nicht. Wenn sie beide groß sind, benutzen Sie den älteren. Machen Sie IN JEDEM FALL ZUSÄTZLICHE BACKUP-KOPIEN von DEN BACKUPS irgendwo anders. 12. Kopieren Sie die Sicherung, für die Sie sich entschieden haben, nach dir. 13. Verlassen Sie die Shell, fahren Sie sauber herunter und starten Sie neu. 14. Sagen Sie Windows, dass es NORMAL starten soll. An diesem Punkt sollte es starten.

F: Was ist, wenn Sie keine Sicherungs-BCD haben?

A: Nun, das sollte wirklich nicht passieren. Es bedeutet wahrscheinlich, dass Sie sich entweder im falschen Verzeichnis befinden, EFI unterstützen, es aber nicht wirklich benutzt haben, oder dass Sie irgendwie Ihre gesamte EFI-Partition ohne alle erforderlichen Windows-Materialien neu erstellt haben (möglich, besonders wenn Sie mehrere Windows-Versionen verwenden). In diesem Fall müssen Sie die EFI-Materialien von der DVD kopieren und dann entweder die Boot-Konfigurationsdatenbank unter Verwendung von dir a:h modifizieren oder neu erstellen.

F: Können Sie mir ein Beispiel für ein Szenario geben, in dem en_US verwendet werden kann, um überhaupt etwas auf einem EFI-System zu tun?

A: Bisher nicht.

Wie auch immer, ich hoffe, dass dies den Leuten hilft, einige Probleme zu lösen, oder sie zumindest zum Nachdenken anregt. Ein sehr wichtiger letzter Punkt: Bitte beachten Sie, dass Sie Ihre EFI-Partition unter Windows normal mit der oben beschriebenen BCD: BCD-Technik mounten und inspizieren können. Sie sollten dies mindestens einmal tun, um ein vollständiges Backup Ihrer EFI-Partition zu erhalten, VOR Sie auf diese Art von Problemen stoßen. Ich empfehle eine Sicherung in ein Unterverzeichnis auf Ihrem Laufwerk BCDedit und eine auf einem USB-Flash-Laufwerk.

Tut mir leid, dass das so umständlich ist. Irgendwann muss ich daraus einen richtigen Artikel machen, aber es gibt so viele Leute, die so frustriert sind, dass ich das Bedürfnis verspürte, meine Erfahrungen so vollständig und schnell wie möglich zu dokumentieren.

5
5
5
2012-08-25 20:45:34 +0000

Windows 8 ist immer noch nicht in der endgültigen Form erhältlich, so dass mit Problemen zu rechnen ist. Sie befinden sich in einem für die meisten von uns neuen Bereich, in dem die Befehle, die wir früher benutzt haben, möglicherweise nicht mehr funktionieren. Zu den von @soandos aufgelisteten Befehlen füge ich diesen hinzu, der die BCD vollständig neu erstellt:

bootrec /rebuildbcd

Versuchen Sie auch, das erweiterte Boot-Menü von Windows 8 zu verwenden, und lassen Sie uns wissen, was passiert.

Wenn nichts funktioniert, enthält der Artikel Reparieren von Windows 7, wenn sie nicht booten einige Ratschläge zur Verwendung von bcdedit zur Korrektur von Boot-Fehlern. Es wäre auf jeden Fall interessant zu sehen, wie die Ausgabe von bcdedit auf Ihrem Computer aussieht.

[EDIT]

Diese Links könnten einige hilfreiche Ideen enthalten: Wiederherstellen des Windows Bootloaders von der DVD Windows 7 Bootmanager-Wiederherstellungsproblem Windows 7 wird plötzlich nicht mehr booten - Reparieren des Windows 7 Bootloaders

3
Advertisement
3
3
2012-11-29 01:17:10 +0000
Advertisement

Der einfachste Weg:

  • Folgen Sie den Schritten aus dem obigen Beitrag, um die BCD-Datei zu finden und zu ihrem Verzeichnis zu gehen.

  • Wenn die BCD-Datei ausgeblendet ist, geben Sie attrib bcd -s -h -r ein und drücken Sie die Eingabetaste. Dadurch können Sie die Datei ändern und überschreiben.

  • Geben Sie ren bcd bcd.old ein und drücken Sie die Eingabetaste. Dadurch wird die aktuelle BCD-Datei umbenannt.

  • Geben Sie Bootrec /RebuildBCD ein und drücken Sie die Eingabetaste, um Windows 8 zu zwingen, das Startmenü von Grund auf neu zu erstellen.

  • Beenden Sie die Eingabeaufforderung und fahren Sie herunter. Entfernen Sie das Windows-Wiederherstellungsmedium und starten Sie neu. Damit sind Sie fertig!

2
2
2
2013-02-06 11:50:32 +0000

Unter DISKPART hatte ich nur Vol. 0 oder D (die DVD) und Vol. 1 oder C (die Windows-NTFS-Partition). Nichts funktionierte bei mir, bis ich Vol. 1 AKTIV machte.

Nach dem Beenden von DISKPART tippte ich nur:

bootrec /fixboot
bootrec /rebuildbcd

dann wurde das System ordnungsgemäß repariert. Ich habe

bootrec /fixmbr

nicht benutzt, weil ich GAG (gestor de arranque gràfico) auf MBR für Multiboot benutzte.

1
Advertisement
1
1
2012-12-05 14:29:49 +0000
Advertisement

Nach 6-stündigem Ringen gelang es mir, mein Windows 8-Startproblem zu beheben.

Heute, nach einem üblichen Neustart, erhielt ich die Meldung MBR not found oder ähnlich, an die ich mich nicht mehr erinnere. Ich versuchte es mit den Befehlen bootrec, der automatischen Reparatur von Windows (es konnte kein installiertes Windows finden), einer Million anderer Möglichkeiten und nichts.

Das Problem war, als ich bootrec /rebuildbcd ausführte, lief es normal, und als ich dann yes eingeben musste, wenn ich die Konfiguration speichern wollte, bekam ich die Meldung, the file is not accessible because it is used by a another process.

Nach stundenlangem Gedankenknacken habe ich es endlich gelöst.

In dieser Reihenfolge…

  • Zuerst bootete ich den Easyup-Partitionsmaster und FORMATIERTE das reservierte System-Volume, das ich später als aktiv zugewiesen hatte (in dem sich mein Boot-Ordner befand). Als ich neu startete, erhielt ich einen Fehler NTLDR missing.

  • Dann startete ich in Windows Recovery, öffnete eine Eingabeaufforderung und gabbootrec /fixmbr, /fixboot, /scanos, /rebuildbcd, cmd(was jetzt gut lief :] ) ein

  • Ich verließ &007 und klickte auf automatische Reparatur.

  • Dann konnte ich Windows 8 auswählen. Als ich neu startete, konnte ich das Windows 8-Logo sehen.

0
0
0
2015-12-19 14:57:30 +0000

Mein Szenario; ich habe die EFI-Systempartition nicht verloren, aber das Wechseln der Laufwerke und die Installation von Windows scheint den Windows-Bootmanager-UEFI-Starteintrag für das erste Laufwerk versaut zu haben; ich musste den UEFI-Eintrag, der auf das Laufwerk zeigt, direkt zum Booten verwenden. Ich glaube, ich habe das Problem durch Korrigieren/Hinzufügen der Einstellung “device partition=\Device\HarddiskVolumeX” behoben (X=2 in meinem Fall; meine zweite Partition ist die EFI-Systempartition, die mit diskpart.exe auf Z: abgebildet wurde):

Bcdedit /set {bootmgr} device partition=Z:

view with: bcdedit.exe /enum firmware

-1
Advertisement
-1
-1
2012-08-13 00:06:38 +0000
Advertisement

Verwenden Sie:bootrec /fixmbr (aktualisiert den MBR, tut in diesem Fall wahrscheinlich nichts, schadet aber auch nicht)

bootrec /fixboot, um den Bootsektor der Systempartition neu zu schreiben.

bootrec /scanos, um nach den Betriebssystemen auf dem Laufwerk zu suchen und sie dem Bootloader hinzuzufügen.

Führen Sie die Befehle der Reihe nach aus.

-4
-4
-4
2012-08-25 20:41:13 +0000

Ich habe es geschafft, es mit dem folgenden Befehl in der Wiederherstellungskonsole zu beheben:

bootcfg C:\Windows /l en-us
Advertisement

Verwandte Fragen

3
28
13
7
3
Advertisement
Advertisement