systemd-boot をインストールする正しい方法は何ですか?

systemd-boot をインストールする正しい方法は何ですか?

好奇心から、セキュア ブートを備えた UEFI を搭載したラップトップで systemd-boot を試しています。デフォルトの GRUB インストールは正常に動作しています。

systemd-bootの場合、ほとんどの検索ではこのページ。これには、を使用して systemd-boot をインストールしbootctl、を作成しloader.conf、カーネル postinstzz-update-systemd-bootスクリプトを作成することが含まれます。ここまではすべて正常に見えますが、systemd-boot にカーネルにアクセスするための ext4 fs ドライバーがないのはなぜか理解できません。とにかく、予想どおり、セキュア ブートのため、これは起動に失敗します。

このページのセキュア ブート セクションにはPreLoader.efi&HashTool.efiセットアップがあります。手順を実行すると、システム ブートで systemd-boot メニューが表示されますが、Ubuntu を選択すると次のエラーが発生します。

EFI stub: UEFI Secure Boot is enabled.

私の理解する限りでは、 はPreLoaderUEFI によって受け入れられる署名済みバイナリです。次に、ハッシュが登録されたloader.efi(名前が変更された) がロードされます。これにより、ハッシュが登録されたカーネルがロードされます。したがって、セキュア チェーンは正常であるように見えますが、ブートは依然として失敗します。ここでは、Canonical のカーネルへの署名は役割を果たさないようです。systemd-bootx64.efivmlinuz

これを機能させるにはどうすればよいですか? また、安全な側面を正しく理解していますか?

答え1

私は、セキュア ブート オプションを除いて、参照されているページのバリエーションに従いました。

残念ながら、変更を加えると、Ubuntuのlinux-generic、linux-headers-generic、linux-image-genericはGRUBのインストールを要求します。に加えてsystemd-boot をインストールし、カーネルの apt アップデートごとに GRUB をデフォルトのブート オプションとして設定します。

その結果、次回の再起動時にボックスは systemd-boot を使用して起動しなくなります。したがって、必要なのは、efibootmgr を実行して起動順序をリセットし、再び「ubuntu」を使用するという最終コマンドです。

この面倒を避けるために、Ubuntuのlinux-generic、linux-headers-generic、linux-image-generic DEBパッケージは、GRUBまたはまたはGRUB を強制的にインストールするのではなく、受け入れ可能なブートローダーとして systemd-boot を使用します。

関連情報