我嘗試在 Fedora 34 上使用 fwupdmgr 在 ThinkPad L14 上進行韌體更新。我嘗試手動更改啟動順序,使用 efibootmgr 刪除未使用的 Windows 啟動項目以及有關何時以及如何允許韌體更新的 BIOS 設定的各種組合,但沒有任何效果。最後,我發現當安全啟動停用時,更新程式會啟動並且更新會成功完成。之後,我可以重新啟用安全啟動,並且我的作業系統正常啟動。此外,fwupdmgr 表示更新已成功安裝。
好吧,看來我的問題已經解決了,但我想知道為什麼解決方案有效。我認為 shim 引導程式不僅會引導作業系統,還會引導更新程序,並且因為 shim 是由 Microsoft 簽署的,所以啟用安全引導應該沒有問題。
如果需要更多資訊來找到解決方案,請在評論中告訴我,我會添加它。我對韌體更新了解不多,因此很難判斷需要什麼。
答案1
如果您拒絕立即重新啟動的 fwupdmgr 請求並efibootmgr
首先執行,您會注意到 fwupdmgr 建立了一個新的啟動條目以在下次啟動時運行。在我的 fedora34 上,這看起來像:
❯ efibootmgr -v
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0001,0000,0019,001A,001B,001C,001D,001E,001F,0020,0021,0022,0023,0024,0002
Boot0000* ...
Boot0001* Fedora HD(1,GPT,2a6909b8-0af2-4faf-96c6-6ff0ad9881a6,0x800,0x12c000)/File(\EFI\fedora\shimx64.efi)
Boot0002* Linux-Firmware-Updater HD(1,GPT,2a6909b8-0af2-4faf-96c6-6ff0ad9881a6,0x800,0x12c000)/File(\EFI\fedora\shimx64.efi)\.f.w.u.p.d.x.6.4...e.f.i...
...
然而,目前 shim 中似乎存在一個錯誤,它阻止它運行 fwupdx64.efi 二進位文件,而是直接將其丟棄到 grub 中: