一切始于我删除了与 Windows 8.1 UEFI 双启动的旧 Linux 分区。此 Linux 系统使用 Grub2 引导加载程序并安装在辅助磁盘上。
重新启动后,grub 被抛入救援外壳,因为它可能找不到已删除分区上的文件。
我尝试通过启动 Windows 8.1 CD(以 UEFI 启动)并尝试各种方法来修复该问题:
通过恢复选项修复自动启动问题。此操作失败。
使用
bootrec
和执行。这表示它已完成,但并未改变任何内容。/fixboot
/fixmbr
正在执行
bootrec /scanos
。这表示找到 0 个 Windows 安装。因此bootrec /rebuildbcb
也没有做任何有用的事情。手动重建 BCD。将 EFI 分区分配给驱动器号 V: 并删除其内容(它仍包含来自 grub 的文件)。然后执行
bcdboot C:\Windows -l de-DE /s V: /f ALL
。此操作成功,并且确实改变了启动行为,但出现了以下错误。
我如何再次启动 Windows?
引导加载程序错误:
Your PC Needs to Be Repaired
The application or operating system couldn't be loaded because a required file is missing or contains errors.
File:\Windows\system32\winload.exe
Error code: 0xc000000e
You' ll need to use the recovery tools on your installation media. If you don't have any installation media (like a disc or USB device), contact your system administrator.
diskpart 的输出list vol
:
DISKPART> 列出卷
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 F ESD-ISO UDF DVD-ROM 3182 MB Healthy
Volume 1 C 850 Pro NTFS Partition 237 GB Healthy
Volume 2 Recovery NTFS Partition 300 MB Healthy Hidden
Volume 3 FAT32 Partition 100 MB Healthy Hidden
Volume 4 D Vertex 4 NTFS Partition 204 GB Healthy
Volume 5 E Garbage NTFS Partition 232 GB Healthy
输出bcdedit
:
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale de-DE
inherit {globalsettings}
default {default}
resumeobject {1xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
displayorder {default}
bootsequence {default}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {default}
device partition=C:
path \Windows\system32\winload.efi
description Windows 8.1
locale de-DE
inherit {bootloadersettings}
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {1xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
nx OptIn
bootmenupolicy Standard
detecthal Yes
答案1
使用任何可以启动的东西(例如 Ubuntu Live CD),访问您的EFI 系统分区 (ESP)并重命名或删除保存 GRUB 文件的目录。例如,如果您安装了 Ubuntu,则文件将位于 中EFI/ubuntu
;如果您安装了 Fedora,则文件将位于 中EFI/fedora
。完成此操作后,固件将无法找到 GRUB,因为 NVRAM 中的指针将指向不再有效的文件名。然后固件应跳过该条目并转到下一个有效条目,该条目应适用于 Windows。