我重新启动了我的 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.EFI
(BOOT/
如果它尚不存在,则在创建之后)。如果您使用的不是单引导系统并且总是希望引导到 GRUB,那么您必须使用 正确修复它efibootmgr
,但请注意,如果您的 EFI 损坏,该修复也不会持续。
答案2
这是一个稍微复杂的过程,恐怕我现在无法详细说明所有步骤。如果需要的话,我会很乐意稍后做。总而言之,需要执行以下步骤:
使用 RHEL 启动盘进入恢复模式。
将系统的
root
、boot
和EFI
分区挂载到临时目录树中,例如/tmp
、/tmp/boot
、 和/tmp/boot/efi
,然后分别chroot
放置在那里(例如chroot /tmp
)。确保您已连接到互联网。如果没有,请使用
nmtui
或一些类似的工具进行连接。安装软件包
grub2-efi
并shim
[参考]。grub
通过发出grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
[来重建参考]。
重新启动您的系统。验证是否在 BIOS 中选择了 RHEL 或具有 EFI 分区的磁盘作为引导选项,然后尝试引导您的操作系统。
应该可以做到这一点。