缺少 grubx64.efi

缺少 grubx64.efi

我重新启动了我的 supermicro 服务器,但它无法启动我的 Linux 磁盘。

在 BIOS/EFI 中,我可以导航到一个操作系统磁盘并查看 EFI 分区和.efi列出的所有文件,但没有grubx64.efi.

如果您要手动添加自己的启动选项,或者如果您要从 EFI shell 手动启动(例如),我相信这就是您所选择的

fs0:\EFI\EFI\redhat\grubx64.efi

但我缺少这个文件。如何解决这个问题?

这是在RHEL 7.6

答案1

这种情况偶尔会发生在未正确保存 EFI 变量的系统上。 (特别是,我在 VirtualBox 上的 CentOS 上见过很多次。)我使用的解决方法是cp redhat/grubx64.efi BOOT/BOOTX64.EFIBOOT/如果它尚不存在,则在创建之后)。如果您使用的不是单引导系统并且总是希望引导到 GRUB,那么您必须使用 正确修复它efibootmgr,但请注意,如果您的 EFI 损坏,该修复也不会持续。

答案2

这是一个稍微复杂的过程,恐怕我现在无法详细说明所有步骤。如果需要的话,我会很乐意稍后做。总而言之,需要执行以下步骤:

  1. 使用 RHEL 启动盘进入恢复模式。

  2. 将系统的rootbootEFI分区挂载到临时目录树中,例如/tmp/tmp/boot、 和/tmp/boot/efi,然后分别chroot放置在那里(例如chroot /tmp)。

  3. 确保您已连接到互联网。如果没有,请使用nmtui或一些类似的工具进行连接。

  4. 安装软件包grub2-efishim[参考]。

  5. grub通过发出grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg [来重建参考]。

重新启动您的系统。验证是否在 BIOS 中选择了 RHEL 或具有 EFI 分区的磁盘作为引导选项,然后尝试引导您的操作系统。

应该可以做到这一点。

相关内容