背景
系统是自建的,所以没有 OEM 的东西。首先安装了 Windows 8,硬盘也新设置为 GPT。后来,我安装了 Fedora 20,它在 BIOS 启动分区上安装了 GRUB。
GRUB 可以正常加载 Fedora,但无法正确加载 Windows,因此我决定放弃 Fedora 安装,将其安装在单独的硬盘上。清除 Linux 分区后,我做了以下操作:
bootrec /fix
bootrec /fixmbr
bootrec /scanos # doesn't recognize any installation
bootrec /rebuildbcd
这会消灭 GRUB,但现在我启动时出现缺少操作系统错误。
现在
gdisk 的当前磁盘布局:
Number Size Code Name
1 300MiB 2700 Basic data partition # WinRE partition
2 100MiB EF00 EFI system partition
3 128MiB 0C01 Microsoft reserved partition
4 136.7GiB 0700 Basic data partition
ESP 包含:
/Boot/
BCD
BCD.LOG, BCD.LOG1...
BOOTSTAT.DAT
memtest.exe
Localization, resource, and fonts folders
/EFI/
Boot/
bootx64.efi
Microsoft/
Boot/
BCD
BCD.LOG, BCD.LOG1...
boot.stl
bootmgfw.efi
bootmgr.efi
bootstat.dat
memtest.efi
Localization, resource, and fonts folders
/bootmgr
/BOOTNXT
bcdedit 还报告:
Windows Boot Manager
identifier {bootmgr}
device partition=I:
path \EFI\Microsoft\Boot\bootmgfw.efi
...
Windows Boot Loader
identifer {default}
device partition=C:
path \Windows\system32\winload.efi
....
我也尝试过按照说明操作这里但重启后仍然出现缺少操作系统的错误。(我在有和没有安全启动的情况下都完成了该过程)
rEFInd 也检测不到任何引导加载程序。
还有其他方法可以修复引导加载程序吗?
答案1
首先,你几乎肯定可以通过在 EFI 模式下安装 Fedora 20 或安装您选择的 EFI 模式 Linux 引导加载程序在您的计算机上。当然,如果 Fedora 被清除,这对您来说并没有什么用;我提到这一点只是希望帮助您学习,或者帮助其他可能需要这个建议的人。
至于你的问题,听起来好像你的EFI 系统分区 (ESP)已损坏,但您没有提供其内容的信息。我也不熟悉您使用的 Windows 分区工具的格式。它显示一个 FAT32 分区(大概是 ESP),但不清楚它是否标有正确的类型代码。ESP 应该这样标记(例如,在 中用 EF00 类型代码gdisk
或在 中用“启动标志” parted
),Windows 引导加载程序文件是EFI/Microsoft/Boot/bootmgfw.efi
。如果该文件丢失,那就是问题所在。我不是 Windows 修复工具方面的专家,但您链接的页面说使用bootrec /fixboot
,而您使用的是bootrec /fixmbr
,还有其他区别。假设微软没有简单地重复使用旧名称,我认为它/fixmbr
在 EFI/GPT 启动计算机上不会有用,因为 EFI 不会将启动代码存储在磁盘的 MBR 中。