Windows 8.1 EFI 分区重建不起作用

Windows 8.1 EFI 分区重建不起作用

一切始于我删除了与 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。

相关内容