Arch Linux 在已經啟動時尋找 /boot/efi
我有雙啟動 Arch Linux 和 Windows。
在 Windows 更新後,我的 GRUB 失去並且系統正在引導至
grub recovery
. 從那裡,我設法將 GRUB 指向 Arch Linux 並啟動它。但是,它無法完全啟動並顯示以下消息:filed to listen on Load/Save RF Kill Switch Status /dev/rfkill Match ... failed to mount /boot/efi # Enter recovery mode ...
我試圖從恢復模式中恢復我的 GRUB(wiki 在這裡):
mount /dev/sda5 /mnt # my Linux system mount /dev/sda3 /efi # my EFI System partition grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB grub-config -o /boot/grub/grub.cfg
這讓我的 GRUB 又回來了,現在我可以像以前一樣選擇 Arch Linux 或 Windows。
但是,當我選擇 Arch Linux 時,會出現相同的錯誤消息
failed to mount /boot/efi
。Windows 正常啟動。我檢查了我有什麼
/boot/efi
,實際上它是空的。我initramfs-linux.img
的initramfs-linux-fallback.img
,intel-ucode.img
和vmlinux-linux.img
文件在/boot/
.但是,在我的
/boot/grub/grub.cfg
,中initrd
尋找intel-ucode.img
並initramfs-linux-lts.img
準確/boot/
地找到它。然後我在 Arch 論壇上發現了大量與我類似的問題(例如這個)。但在問題出現之前,我沒有更新 Linux 核心,也沒有觸及我的 Linux 安裝中的任何內容。此外,與提到的文章相反,看起來我
vmlinuz-arch.efi
什至在/boot/
.我還花了一些時間瀏覽 Arch Wiki。據我了解,涉及 GRUB 恢復的 Wiki 頁面通常會提出與我已經嘗試過的過程相同的過程,但從
arch-iso
witharch-chroot
到 my/dev/sda5
.所以我對最重要的問題有幾個問題:如何恢復我的 Arch Linux 啟動過程?
另一個,更具體地說,**為什麼在 GRUB 階段已經過去時
systemd
甚至試圖找到/boot/efi
**一次?GRUB 不是尋找引導條目的那個嗎?看起來 GRUB 已經拿起了我的 Arch Linux initram(至少 GRUB 執行了正確的 GRUB 條目,我通過在 中添加回顯消息來檢查它/boot/grub/grub.cfg
)。更奇怪的是,
/boot/efi
由於/dev/sda2
哪個是我的Windows recovery environment
而不是/dev/sda3
哪個而無法安裝EFI System
:$systemctl status boot-efi.mount boot-efi.mount --- /boot/efi Loaded: loaded (/etc/fstab; generated) Active: Failed (Result: exit-code) ... Where: /boot/efi What: /dev/sda2 Docs: man:fstab(5) man:systemd-fstab-generator(8)
這看起來像 Windows 更新對您的 EFI 分區做了一些非常頑皮的事情。
我在您的問題中看到的主要問題是 systemd 找不到 /boot/efi
這是使用配置文件安裝的
/etc/fstab
。無論出於何種原因,/etc/fstab 中的 /boot/efi 條目正在尋找不再存在的文件系統。這與重新格式化 EFI 分區是一致的,並解釋了為什麼需要重新安裝 grub。
您可以使用該命令
blkid
(以 root 身份執行)來查找 EFI 分區的 UUID。然後您可以將其編輯到 /etc/fstab 中。那應該可以解決您的問題。EFI 已安裝,以便實用程序可以在執行時讀取和更新您的 EFI。