我尝试使用 Fedora 34 上的 fwupdmgr 在 ThinkPad L14 上进行固件更新。一切似乎都很好,直到程序告诉我重新启动,我照做了,但启动的是 Fedora 而不是固件更新程序。我尝试手动更改启动顺序,使用 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: