Ошибка 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 до конфигурации grub Fedora и добавить 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-efiи i386-pcно нет x86_64-efi. Я немного не в себе с этой штукой bootmgr (мой опыт простирается до того, что я забиваю эти проблемы до тех пор, пока они не заработают каждый раз, когда у меня новая установка).

Есть ли у кого-нибудь предположения, в чем проблема, или где еще можно поискать ответы?

решение1

Сначала я запустил «dnf provide», чтобы найти нужный пакет:

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 variables were not supported on my system». Я нашел еще один пост на stackexchange и смог исправить это, выйдя из среды chroot и загрузив модуль efivarfs с помощью modprobe efivarfs. Затем я снова вошел в смонтированный root и смонтировал его с помощью 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

Связанный контент