如何將主機板韌體資料庫中儲存的安全啟動金鑰與簽署的 .efi 檔案進行比較?

如何將主機板韌體資料庫中儲存的安全啟動金鑰與簽署的 .efi 檔案進行比較?

在虛擬機器中啟用安全啟動是小菜一碟,但我很難在我的2012 年老式電腦上使用OpenSUSE 做同樣的事情,即使在標準配置下(似乎使用微軟的密鑰)也拒絕以安全啟動模式啟動。我想解決最關鍵的部分:韌體和墊片之間的密鑰是否匹配?如何檢查?

答案1

什麼是安全啟動?

引用粒子大作戰:

...安全啟動是指根據製造時放置在裝置上的已知安全加密金鑰來驗證裝置韌體和作業系統的過程。每次裝置啟動時都會進行此身份驗證,以驗證正在載入的韌體或程式碼是由生產者放置的合法版本。

上面的引用和連結指的是物聯網設備。如果我們將個人電腦視為“事物”,這句話仍然適用於個人電腦。就OP的問題而言,設備的年齡並不重要,因為引用的前提在2012年與現在是相同的。我將使用密鑰存儲庫需要“重置”的假設來開始此故障排除答案的其餘部分,OP 已經完成了這一操作,但我這樣做是為了未來訪問者的利益。

詳細步驟

讓我們產生一個編號列表,列出我們需要做什麼來將該任務分成更小的區塊:

  1. 繼續閱讀安全啟動在 Linux 中如何與 SuSE 配合使用筆記:2012 年該連結中的實作幾乎是所有發行版實現安全啟動的方式。
    • 為了簡單起見,我將發布那篇文章的「內容」(對於那些瀏覽過的人),因為這是OP所面臨的基本問題): 安全啟動流程圖
  2. 將 Mac 的韌體重設為出廠預設設置執行 PRAM 重設
  3. 使用這些步驟羅德里克史密斯概述
    • 如果 OpenSuSE Live ISO 包含 MokManager 程式或 MokUtil 程序,則步驟 3 可能會被簡化。
  4. 將您所需的金鑰註冊到 MOK 資料庫中。
    • 可選:如果您按照上述步驟(第 3 項和第 4 項)操作,您最終將註冊 rEFInd 金鑰和 SuSE 金鑰。如果您打算雙重開機 OSX 和 OpenSuSE,我建議使用此開機管理員。如果您只計劃使用 OpenSuSE,則只需註冊該憑證。
  5. 現在應該shim知道新金鑰並正確地將進程傳遞給 Grub2,Grub 2 將引導 OpenSuSE。

如果上述步驟失敗怎麼辦

請參閱故障排除部分在 Mac 上安裝 openSUSE。作為預感,再次引用羅德里克史密斯的話:

一些 EFI 實作(主要是 2014 年之前的)在遵守透過 Linux 的 efibootmgr 或其他工具設定的引導選項方面表現不佳。您也可能無法存取此類實用程序,例如您必須在 Windows 中安裝 rEFInd。在這種情況下,您可能需要更改引導程式的名稱,以便 EFI 將其視為預設引導程式。當您的 NVRAM 缺少有關要使用的特定開機載入程式的資訊時,rEFInd 應該會引導。

在上述情況下,將 OpenSuSE 的shim<arch>.efi檔案重新命名為boot<arch>.efi,並將其放置在 或 的BOOT目錄中(如果沒有BOOT目錄,則將其放置在根目錄中)如果此方法arch有效,x32x64 OP 的韌體僅支援從一個文件啟動。看:備用命名選項

順便說一句,即使在較新的系統上也需要這樣的修復。看:更新 NVRAM,以便在 Debian 系統上運行 shimx64.efi 而不是 grubx64.efi,以實現安全啟動。我感受到OP在這方面的痛苦。

相關內容