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:
- Ihr BIOS verliert seine Einstellungen:
- Kein Problem, der ganze Kram ist in der EFI-Partition gespeichert.
- …außer der Einstellung SATA IDE vs. AHCI, aus offensichtlichen Gründen.
- Haben Sie SATA-AHCI benutzt? Wahrscheinlich benutzen Sie jetzt SATA-IDE.
- Haben Sie versucht zu booten, bevor Sie das herausgefunden haben?
- Wenn ja, ist es fehlgeschlagen. Haben Sie es von Windows versuchen lassen?
- Falls ja, BLAM, könnte es sehr wohl die Boot-Konfigurationsdatenbank zerstört haben.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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:
- 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.).
- 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.
- 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.
- 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.
- 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.
- Beginnen Sie
DiskPart
.
- 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.
- 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.