安装 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.

据我所知,PreLoader是 UEFI 接受的签名二进制文件。然后,它将加载已注册哈希值的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或者systemd-boot 作为可接受的引导加载程序,而不是强制安装 GRUB。

相关内容