ArchLinuxとWindowsのデュアルブートがあります。
Windows Updateの後、私のGRUBが失われ、システムは_grub recovery
_で起動していました。そこから、GRUBをArchLinuxと起動しますが、次のメッセージで完全に起動できません。
_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に戻り、以前と同じようにArchLinuxまたは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/
_にあります。
しかし、my _/boot/grub/grub.cfg
_では、initrd
は_intel-ucode.img
_と_initramfs-linux-lts.img
_を_/boot/
_で正確に検索し、明らかに見つけます。
それから私はArchフォーラムで私のものと同様の問題をたくさん見つけました(例 this one )。ただし、問題が発生する前に、Linuxカーネルを更新したり、Linuxインストール内で何かを変更したりはしていません。また、参照された投稿とは異なり、_vmlinuz-Arch.efi
_でも_/boot/
_のようなものはないようです。
また、ArchWikiの閲覧にも時間を費やしました。私が理解している限り、GRUBリカバリーを参照するWikiページは通常、すでに試したものと同じ手順を提案しますが、_Arch-iso
_と_Arch-chroot
_から私の_/dev/sda5
_。
だから私は一番上の質問にいくつか質問があります:Arch Linuxの起動プロセスをどのように回復しますか?
より具体的なもう1つの理由は、systemd
が_/boot/efi
_を一度だけ検索しようとする理由です(GRUBフェーズが既に渡されました?GRUBブートエントリを探すものではありませんか?そしてGRUBはすでに私のArchLinux 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 UpdateがEFIパーティションに対して非常にいたずらをしたようです。
あなたの質問で私が見る主な問題は、systemdが/ boot/efiを見つけることができないということです
これは、設定ファイル/etc/fstab
を使用してマウントされます。
何らかの理由で、/ etc/fstabの/ boot/efiエントリは、存在しなくなったファイルシステムを探しています。これは、EFIパーティションを再フォーマットしたことと一致し、grubを再インストールする必要がある理由を説明します。
コマンドblkid
(rootとして実行)を使用して、EFIパーティションのUUIDを見つけることができます。その後、それを/ etc/fstabに編集できます。これで問題が解決します。
EFIは、ユーティリティが実行時にEFIを読み取って更新するためのアクセス権を持つようにマウントされています。