
我知道這是一個非常常見的問題,但我嘗試了很多常見的答案(下面列舉),但都無濟於事。
基本設定:我正在設定 Fedora 31 / Ubuntu 18.04 雙重引導,每個分割區都有一個單獨的加密 / 和非加密 /boot 分割區,以及一個 /boot/efi 分割區,總共 5 個。 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
。
- 我試過了擴充命令到
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootfloader-id=grub2
沒有變化。 - 我也嘗試過
dnf reinstall grub2-efi shim grub2-tools
- 和安裝
grub2-efi-modules
儘管如此,我在我的/usr/lib/grub
目錄中可以找到的只是arm64-efi
andi386-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 解決了