我有一台服务器戴尔服务器R650,该计算机已经运行 Ubuntu 18.04 几年了,并且启用了安全启动。当我尝试使用官方 ISO 映像 20.04.6 将其升级到 Ubuntu 20.04 时,我遇到了以下问题。
启动 Ubuntu 20.04 一次后,后续尝试启动启用了安全启动的 Ubuntu 18.04 和 Ubuntu 20.04 均失败。
对于 Ubuntu 18,我得到了
sbat.c:120:verify_single_entry() component sbat has a matching SBAT variable entry, verifying
sbat.c:120:verify_single_entry() component grub has a matching SBAT variable entry, verifying
sbat.c:131:verify_single_entry() component grub, generation 1, was revoked by SbatLevel variable
sbat.c:182:verify_sbat_helper() finished verifying SBAT data: Security Policy Violation
Verification failed: Security Policy Violation
Failed to load image: Security Policy Violation
对于 Ubuntu 20,情况有所不同。
sbat.c:125:verify_single_entry() component sbat has a matching SBAT variable entry, verifying
sbat.c:191:verify_sbat_helper() finished verifying SBAT data: Success
shim.c:1740:efi_main() SBAT self-check succeeded
但服务器“卡住”了大约10分钟,然后自行重新启动。
所有启动都是使用 IDRAC 虚拟媒体由官方且未修改的 Ubuntu ISO 映像制作的。
已执行以下步骤(逐一执行并同时执行),但仍然无法启动(使用安全启动)
- 平台密钥 (PK) –> 恢复默认平台密钥
- 密钥交换密钥 (KEK) 数据库 -> 恢复默认 KEK 数据库
- 授权签名数据库 (db) -> 恢复默认
- 恢复默认策略条目(PK、KEK、db 和 dbx)
- BIOS 重置为默认值
此服务器系统已通过 Ubuntu (20.04/22.04) 认证 -https://ubuntu.com/certified/202105-29054
有什么帮助可以使 Ubuntu 20.04(和 Ubuntu 18.04)安全启动吗?
答案1
整理这两篇文章:
- https://bugs.launchpad.net/ubuntu/jammy/+source/mokutil/+bug/2015664
- https://discourse.ubuntu.com/t/sbat-revocations-boot-process/34996
我有一个临时的解决方案,例如:
- 关闭安全启动
- 启动 Ubuntu 18(已安装或实时),进入 shell 并更新(安装)mokutil(mokutil 必须至少为 0.6.0-2,才能使用 Ubuntu 18 标准存储库)
- 运行 mokutil 并删除 SBAT 策略记录。
mokutil --set-sbat-policy delete
- 启动 Ubuntu 20.04(或更高版本)并停止在 grub 菜单上(它将删除 SBAT 记录)
- 停止系统并在 BIOS 中打开安全启动。
- 在安全启动模式下启动 Ubuntu 18 ISO。