我尝试更新我的 ubuntu 固件但遇到一个问题:
ESP 中的可执行文件被阻止,请确保 grub 和 shim 是最新的:/boot/efi/efi.factory/boot/bootx64.efi Authenticode 校验和 [2ea4cb6a1f1eb1d3dce82d54fde26ded243ba3e18de7c6d211902a594fe56788] 存在于 dbx 中
以下是更新的详细信息:
版本 217:这将 dbx 更新为 Microsoft 的最新版本,由于发现多个安全更新,该版本将不安全的 grub 和 shim 版本添加到禁止签名列表中。
在安装更新之前,fwupd 将检查 ESP 中是否存在受影响的可执行文件,如果发现任何使用任何禁用签名签名的启动二进制文件,它将拒绝更新。如果安装失败,您需要先更新 shim 和 grub 包,然后才能部署更新。
安装此 dbx 更新后,任何使用旧签名签名的 DVD 或 USB 安装程序映像都可能无法正常工作。如果您的发行版尚未提供新映像,则在使用恢复或安装媒体时可能必须暂时关闭安全启动。
版本 211:这将 dbx 更新为 Microsoft 的最新版本,由于发现多个安全更新,该版本将不安全的 grub 和 shim 版本添加到禁止签名列表中。
版本 190:此版本将 dbx 更新为 Microsoft 的最新版本,由于发现多个安全更新,该版本将不安全的 grub 和 shim 版本添加到禁止签名列表中。
答案1
警告:我自己没有遇到过这个问题,也无法测试下面的答案。请注意,它可能会导致您的计算机无法启动。
该文件夹/boot/efi/efi.factory
似乎是随 Ubuntu 销售的 DELL 电脑的一个特性 [1]。
你可以使用以下命令检查是否确实正在使用/boot/efi/efi.factory/boot/bootx64.efi
启动:
sudo efibootmgr -v | grep "Boot$(sudo efibootmgr -v | awk '/BootCurrent/{print $2}')"
此命令显示已使用哪个 EFI 进行启动。如果没有/EFI/efi.factory/boot/bootx64.efi
,并且您不需要启动到 DELL Recovery,我思考您可以安全地删除它或将其移出文件/EFI
夹:请参阅https://unix.stackexchange.com/a/636034。
[1]:https://github.com/dell/dell-recovery/blob/master/debian/changelog#L514
答案2
这通常发生在需要手动更新的旧 efi 文件上。以下是摘录自fwupd 维基页面
就我而言,更新抱怨的文件是 /boot/efi/EFI/BOOT/bkpbootx64.efi。我发现该文件比同一目录中的其他文件早一年。网络搜索显示该文件是“Boot-Repair 定期创建的备份”。Boot-Repair 是一个第三方程序,设计用于 Ubuntu,在 Ubuntu 衍生产品(如 Linux Mint)上使用时要谨慎。我在 Mint 上使用过该程序。我删除了备份文件,即 /boot/efi/EFI/BOOT/bkpbootx64.efi。我告诉 fwupd 进行更新。我重新启动了 fwupd,几乎没有迹象表明已经完成更新,但再次运行 fwupd 表明更新确实已完成;我的系统似乎继续完美运行。
另一位用户发现以下情况。“我的问题是,我之前安装的 /boot/efi/EFI/ubuntu 非常旧。我正在运行 Fedora。因此,非常旧的 ubuntu 组件未更新,从而阻止了 UEFI dbx 更新。”
错误消息通常会告诉您有问题的 efi 文件的名称:
Blocked executable in the ESP, ensure grub and shim are up to date: /boot/efi/efi.factory/boot/bootx64.efi Authenticode checksum [2ea4cb6a1f1eb1d3dce82d54fde26ded243ba3e18de7c6d211902a594fe56788] is present in dbx
文件名:/boot/efi/efi.factory/boot/bootx64.efi
您可以删除此文件然后fwupdmgr
再次更新
sudo fwupdmgr refresh --force
sudo fwupdmgr update
这将要求您重新启动。 重新启动后,如果您再次检查,您将看到更新已安装。