GRUBをインストールし、問題なくefibootmgrを使用して起動順序を変更することができたEFIパーティション/ dev / sda1がありますが、残念ながら、現在はgrub-installで "読み取り専用ファイルシステム"エラーを取得できません(特に、/boot / efiとefibootmgrにインストールするときは、grub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sda
次のように消去しようとしました。
sudo mkfs.vfat /dev/sda1
しかし、まだこのエラーが発生します。具体的にはgrub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sda
次のようになります。
Installing for x86_64-efi platform.
Could not delete variable: Read-only file system
efibootmgr: ** Warning ** : Boot0002 has same label gentoo
Could not prepare Boot variable: Read-only file system
Installation finished. No error reported.
私は見たUSB読み取り専用ファイルシステムの回復wipefs
ただし、複数のディストリビューションがインストールおよび設定されており、これらの削除から回復するのに時間がかかるため、このディスクを削除することはできません。奇妙なことは、grub-installがまだ/dev/sda1にファイルを追加していることです。ただ起動順序が変わらないようです。
答え1
エラーメッセージは「変数を削除できません:読み取り専用ファイルシステムです。実際にUEFIブート変数を操作しようとしましたが、失敗しました。
efivarfs
これらのエラーは、実際には通常インストールする必要があるUEFIブート変数にアクセスするために使用されるファイルシステムを指します/sys/firmware/efi/efivars
。また、以前のバージョンのUEFI変数アクセスメカニズムがあるかもしれません/sys/firmware/efi/vars
。
CONFIG_EFIVAR_FSカーネル設定オプションを見逃すと、対応する仮想ファイルシステム用のドライバがカーネル(またはモジュールにコンパイルされている場合はその名前efivarfs
)にない可能性があります。ドライバが利用可能な場合は、このファイルシステムが次にリストされていることを確認してください/etc/fstab
。システムのブートスクリプトが具体的に処理しない場合は、/ etc / fstabファイルに次の行を追加する必要があります。
efivarfs /sys/firmware/efi/efivars efivarfs defaults 0 0
アップデート:誰かがそれを実行すると、元の実装によってefivarfs
一部のコンピュータが機能しない可能性がありますrm -rf /sys/firmware/efi/efivarfs
。
この状況に対する保護が新しいカーネルに追加され、安全であることが知られている項目を除くすべての変数項目はデフォルトで変更できず、(efivarfs
と同様chattr +i
)正当なUEFI変数操作ツール(変更する前にファイル属性を変更するなど)があります。efibootmgr
。
ローリングリリースシステムでは、efivarfs
ユーザースペースツール(つまり、grub-install
処理に必要な修正を受け取る)の前にカーネルアップデートが実行され、システムに変更が適用される可能性があります。この場合、これが発生する可能性があります。