安裝 systemd-boot 的正確方法是什麼?

安裝 systemd-boot 的正確方法是什麼?

出於好奇,我正在我的筆記型電腦上嘗試 systemd-boot,該筆記型電腦具有 UEFI 和安全啟動功能。預設的 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(重命名)。systemd-bootx64.efi這會載入vmlinuz其哈希值也已註冊的核心。因此,安全鏈似乎沒問題,但啟動仍然失敗。看起來 Canonical 對核心的簽名在這裡不起作用。

如何讓它發揮作用以及我是否正確理解了安全方面?

答案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。

相關內容