systemd-boot
ブート メニューをスキップし、一般的に構成ファイル (EFI パーティション上) を無視するようになった問題のデバッグに何時間も費やした後、/loader/loader.conf
起動時に何らかのキーを押すとブート メニューを呼び出すことができ、この問題は、どうやら私が誤って作成した特定の EFI 変数によって発生していることがわかりました。(なぜこのようなことが起きたのかはわかりませんが、あるパーティションに Ubuntu 18.04.1 を再インストールした直後に問題が発生しました。)
特に、 の 変数が何らかの理由LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
で に設定されており0
、 で定義されたタイムアウトが上書きされていること/loader/loader.conf
、また 変数もLoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
定義されており、 で設定されたデフォルトのメニュー エントリが上書きされていることを発見しました/loader/loader.conf
。
下部をご覧ください「systemd-boot UEFI ブート マネージャー」で使用されるEFI変数のリストについては、freedesktop.orgのページを参照してくださいsystemd-boot
。それらの値は、たとえば次のようにして調べることができます。
cat /sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
何らかのキーを押してブート メニューを表示し、 をd2 回押して新しいデフォルト エントリを設定および設定解除すると、LoaderEntryDefault-...
変数が削除されました。ただし、 はまだ残っています。メニューで( ) キーLoaderConfigTimeout-...
を使用して を変更することで を変更できることはわかっていますが、 を完全に削除して、 の設定を再度使用できるようにしたいと考えています。t TShift-tLoaderConfigTimeout-...
/loader/loader.conf
などの EFI 変数を変更および設定解除する正しく安全な方法は何ですかLoaderConfigTimeout-...
?
答え1
systemd-boot では、設定がゼロになるまで または を何回か押しShiftT、Num -さらにもう一度押して設定を解除し、変数を完全に削除します。
Linux では、まずchattr -i
/sys/… ファイルで を使用してカーネルによって適用された保護を削除し、次に を使用してrm
変数を完全に削除します。
UEFIシェルでは、dmpstore -d <name>
(オプションで-guid <guid>
)を使用して変数を削除します(UEFI シェル仕様 2.0(113ページ)