grub2-install 错误:modinfo.sh 丢失 - 尝试常见解决方案

grub2-install 错误:modinfo.sh 丢失 - 尝试常见解决方案

我知道这是一个非常常见的问题,但我尝试了很多常见的答案(下面列举),但都无济于事。

基本设置:我正在设置 Fedora 31 / Ubuntu 18.04 双引导,每个分区都有一个单独的加密 / 和非加密 /boot 分区,以及一个 /boot/efi 分区,总共 5 个。首先安装了 Fedora,然后是Ubuntu。一切都很顺利,我可以从 efi 启动菜单启动到其中一个。我想锁定 efi 启动顺序并在 grub 中进行启动选择,而当前的 Ubuntu grub 选项错过了 Fedora。所以我启动到 Fedora 并尝试grub2-install /dev/sda将 MBR 重置为 Fedora 的 grub 配置并添加 Ubuntu。相反,我得到了 oh-too-common grub2-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory

尽管如此,我在我的/usr/lib/grub目录中可以找到的只是arm64-efiandi386-pc但没有x86_64-efi。我对 bootmgr 的东西有点不了解(我的经验一直延伸到解决这些问题,直到每次我有新安装时它们都能工作)。

有人猜测问题是什么或在其他地方寻找答案吗?

答案1

首先我运行“dnf提供”来找到正确的包:

dnf 提供 /usr/lib/grub/x86_64-efi

然后我使用其全名安装了正确的包:

dnf 安装 grub2-efi-x64-modules-1:2.06~rc1-2.fc33.noarch

答案2

grub2-efi-x64-modules我可以通过在 Fedora 上安装软件包来添加缺少的模块。

就我而言,此后我遇到了另一个错误“我的系统不支持 EFI 变量”。我找到了另一个 stackexchange 帖子,可以通过退出 chroot 环境并通过 加载 efivarfs 模块来解决该问题modprobe efivarfs。然后我重新登录到已安装的根目录并通过mount -t efivarfs efivarfs /sys/firmware/efi/efivars.

答案3

在 ubuntu 上(这将创建 efi 支持)/usr/lib/grub/x86_64-efi

sudo apt install grub-efi

答案4

我通过安装 grub2-efi-modules 和 efibootmgr 解决了

相关内容