如何在 Fedora Linux 上重新安装 grub-efi 引导加载程序?

如何在 Fedora Linux 上重新安装 grub-efi 引导加载程序?

我最近使用 EFI 启动安装了 Fedora 18。与其他当前 Linux 发行版一样,它为我设置了 GRUB2。

我有重新安装的经验BIOS出现问题时,我知道如何启动救援盘、如何 chroot 到已安装的系统、如何运行grub-install以及可能如何update-grub/ grubby/ grub-mkconfig

我该如何重新安装电喷版本时出现问题?(我知道会出现问题:我会解决它们)。

答案1

首先,你需要一个EFI 启动Linux 系统。如果您仍保留原始安装介质(CD/DVD/USB 棒),则通常应包含足够的救援系统。它甚至可能具有一键修复选项 :)。

另外,Ubuntu 社区还提供了自动启动修复图片。它声称支持 Fedora。如果你想知道它到底能做什么,我建议你阅读第三方解释提前。

不过,我使用了带有控制台工具的通用救援系统。除了支持 EFI 启动外,我还确保efibootmgr在包列表中。它恰巧被称为几何模型并且基于 Debian。以下是我在拯救 Fedora 系统时发现的有关控制台工具和 grub-efi 的信息:

  1. 运行由 EFI 启动的 Fedora 18 系统时,别跑grub2-install。它会声称成功,但它会破坏 Fedora grub-efi 启动系统。

    • 该文件/boot/EFI/fedora/grub.efi由 grub-efi 包安装。如果您想要重新安装,请使用yum reinstall grub-efi。(要从通用救援系统执行此操作,您可以在mount输入并chroot输入到已安装的 Fedora 系统后执行此操作)。Fedora grub-efi 使用配置文件/boot/EFI/fedora/grub.cfg(可能由 grubby 生成)。EFI 上的 Fedora 不会在 处生成文件/boot/grub2/grub.cfg。运行grub2-install将用尝试读取 的图像替换 grub.efi /boot/grub2/grub.cfg,因此将失败。

    • grub2-install安装 EFI 启动项grub.efi。但是,如果您未在 Windows 8 认证固件中禁用安全启动,则此条目将无法启动。您需要改为启动shim.efi(忽略shim-fedora.efi,我不确定那到底是什么)。见下文。

  2. 如果您的固件设置被重置,您可能会丢失 Fedora 的 EFI 启动项。(手动重置、通过固件升级或因为固件有缺陷 - 后者已被广泛报道)。以下是如何手动创建具有安全启动功能的 Fedora 的 EFI 启动项:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    此示例使用 Linux 识别的第一个标准磁盘上的分区号 100。您应该调整选项-d /dev/sda-p 100以识别 Fedora 挂载的文件系统/boot/efi。这是一个 EFI 系统分区。Fedora 安装程序将创建一个投入的供您的 Fedora 安装使用的 ESP,与任何其他操作系统使用的 ESP 分开。(这与 Ubuntu 和 OpenSUSE 不同)。

    请注意,该efibootmgr命令要求您从 EFI 启动的系统运行它。

答案2

如果您使用 UEFI Windows 进行双启动,则还有另一种可能性,即不需要恢复磁盘。

您可以启动 Windows,以管理员权限打开命令行,然后运行以下命令:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

这将用引导至 GRUB 的启动项替换 UEFI 中的 Windows 启动项。假设您的 GRUB 菜单包含一个适用于 Windows 的工作项,那么您现在就可以进行双启动了 :-)。希望这一切都可以在不禁用安全启动的情况下完成。

我在 Windows 更新后亲自做了这件事,似乎起了作用。

来源及更多信息:http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/

答案3

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems

dnf reinstall grub2-efi grub2-efi-modules shim

(假设您已经安装了这些软件包并且以前的配置已经存在)

答案4

就我而言,我在grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg修改后运行(可以发誓这在正确的路径上)破坏了我的 Fedora 安装/etc/default/grub。 Fedora 中主 GRUB2 配置文件的路径现在是/boot/grub2/grub.cfg,并且 EFI 系统分区上的配置文件仅包含足够的配置来从中加载该 GRUB2 配置/boot/grub2

postinstallESP 上的小型配置文件由包的脚本创建grub2-common。可以通过运行来查看该脚本rpm -q --scripts grub2-common。为了修复我的错误,我删除了/boot/efi/EFI/fedora/grub.cfg我创建的文件并运行sudo dnf reinstall grub2-common以重新生成它。

Fedora GRUB2 文档

相关内容