我安装了 Fedora 20 和 Windows 8。我希望能够双启动。但是当我在 grub 菜单中选择 Windows 启动管理器时,我得到了:
‘错误文件 /EFI/Microsoft/Boot/bootmgfw.efi 未找到’
当我在 BIOS 中选择 Windows 作为默认设置时,我可以启动 Windows。
我发现我有两个启动分区。所以我将 Microsoft 文件夹从 Microsoft 启动分区复制到 Fedora /boot/efi/EFI。
我找到了我的 Microsoft 启动分区的 UUID,并添加了
menuentry "Windows 8 UEFI" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root **4013-6F8C**
chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}
到 /etc/grub.d/40_custom 并运行这些:grub2-mkconfig、grub2-install
因为我在这里读到过:Fedora18升级到Fedora19后,如何让grub2链式启动Win8?
现在我启动到 grub>
我尝试了 ls(hd0,gpa4)/,它找到了一些 linuz 和 initrd 文件,但是执行此命令后提示符就冻结了。我把这些文件名写在纸上,并在下次启动时尝试了这个:https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Encountering_the_dreaded_GRUB_2_boot_prompt但在启动命令之后,我收到“错误,未找到合适的视频模式。以盲模式启动”并且冻结。我该怎么办?
答案1
根据我的经验,以及其他提出类似问题的人的经验,Fedora 在控制双启动或多启动系统方面并不可靠。我遇到了同样的问题,在安装 Fedora 20(实际上是 Korora 20)后,Fedora 的 grub 只会启动 Fedora,并会出现与我的系统上其他安装相同的错误。此外,在内核更新后,它会清除其他安装的整个 EFI 分区。幸运的是,我有备份。
对我来说,有效的解决方案是实际依赖另一个 Linux 安装的 grub 来管理 Windows 和 Fedora 的启动。最终您将得到一个三重启动系统,其中包含两个 Linux 安装和一个 Windows - 带有以下分区(我有一个 GPT,您应该也有一个):
- Windows 恢复环境
- 系统EFI
- 微软保留
- Windows C
- Windows 恢复映像
- Linux Swap(由两个 Linux 安装共享
- Fedora
/boot/efi
(专为 Fedora 设计的 SystemEFI) - Fedora 的
/
- Fedora 的
/home
- 其他 Linux
/
- 其他 Linux
/home
我曾使用 Voyager(基于 Xubuntu 14.04)、Sabayon 14.08 和 OpenSuSE 13.1 来执行此操作。使用 Voyager 时我没有遇到任何问题,而且它附带系统设置控制中心中的 GUI Grub Customizer。
我在一篇晦涩难懂的博客文章和一篇有关 Fedora 的 zdnet 文章中找到了解决方案的其余部分。您需要重新安装 Fedora,但这次不要/boot/EFI
像通常设置双启动系统时那样挂载现有的 SystemEFI 分区。相反,当您重新安装 Fedora 时,创建一个新分区(与现有 EFI 分区大小相同)并像/boot/efi
在 Fedora 安装过程中一样挂载此分区。Fedora 会将其 grub 和相关文件放在此分区中,并且在有内核更新时不会影响其他操作系统。
安装后,Fedora 将接管启动,您可能会遇到同样的问题。但现在请安装更可靠的 Linux 发行版(至少就启动而言——我建议使用 Voyager 14.04(基于 Xubuntu 14.04)。现在它应该接管启动,并在设置 grub 时找到 Windows 和 Fedora。如果 Fedora 在内核或 grub 包更新后接管启动,只需调整您的 UEFI 启动顺序列表以将 Voyager(它将被列为 Ubuntu)或您选择的任何发行版移至列表顶部。