簽署 systemd-boot 檔案並註冊 PK 以啟用安全啟動
生成金鑰、匯入 PK 並啟用安全啟動的指南
0. 開始之前#
最近我嘗試安裝 Fedora 來取代 Ubuntu,以擺脫 snap 的爛東西。然後我不知道從哪裡冒出一個想法,決定試試 systemd-boot,噩夢就是這樣開始的。
這裡涉及兩個獨立的信任操作:
- EFI 簽署:韌體
db信任 systemd-boot 和你的 UKI。 - 內核模組簽署:NVIDIA 模組由內核信任的金鑰簽署。
當直接通過 systemd-boot 啟動時,不需要 MOK,前提是模組憑證存在於韌體 db 中,且 Fedora 將該金鑰匯入到模組驗證接受的 keyring 中。線上的教學主要針對 grub+shim,通常會要求你註冊 MOK 金鑰。
如果你對我的安裝過程以及我如何為安全啟動配置 systemd-boot 不感興趣,請跳過第 0 章。
安裝 Fedora#
systemd-boot 方式只能使用 Everything netinst 映像進行配置(據說離線映像也可以做到,但步驟更複雜)。從 USB 金鑰啟動後,導航到——
建立金鑰:
bash
1sudo sbctl create-keys註冊 sbctl 金鑰同時保留 Microsoft 憑證:
bash
1sudo sbctl enroll-keys -m當需要 Microsoft 簽署的 Option ROM、Windows 或其他 Microsoft 簽署的 EFI 組件時,-m 參數很重要。
簽署已註冊的 EFI 檔案:
bash
1sudo sbctl sign-all
2sudo sbctl verify