好奇心から、セキュア ブートを備えた 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.
私の理解する限りでは、 はPreLoader
UEFI によって受け入れられる署名済みバイナリです。次に、ハッシュが登録されたloader.efi
(名前が変更された) がロードされます。これにより、ハッシュが登録されたカーネルがロードされます。したがって、セキュア チェーンは正常であるように見えますが、ブートは依然として失敗します。ここでは、Canonical のカーネルへの署名は役割を果たさないようです。systemd-bootx64.efi
vmlinuz
これを機能させるにはどうすればよいですか? また、安全な側面を正しく理解していますか?
答え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 を使用します。