如何判断Ubuntu是否已安全启动?

我知道我可以重新启动,进入UEFI固件(以前是BIOS)设置,并寻找启用UEFI启动和强制安全启动的选项。然而,假设已经启动了系统(例如,一个我不想重新启动的服务器),我要如何确定Ubuntu是否已经安全启动?

我知道有一个关于EFI启动的问题(另一个问题),我觉得它很有用。我也读过这篇文章,了解Ubuntu如何实现UEFI安全启动(令人惊讶的是,借助了微软的协助)。然而,这些来源并没有回答我的问题。我知道如果系统尝试进行安全启动,但失败了,它会重新启动。我要如何确定shim和后续的引导加载程序是如何验证引导加载程序链条(包括Linux内核)的呢?

如果能够查看哪些证书机构(例如Microsoft和Canonical)用于验证引导加载程序,那就更好了。

谢谢!

1个回答

为了查询安全启动状态,您可以运行以下命令:
mokutil --sb-state

来源: http://manpages.ubuntu.com/manpages/impish/man1/mokutil.1.html

额外的奖励分数,有没有办法查看用于验证引导加载程序的证书颁发机构(比如Microsoft和Canonical)?

在您提供的问题中,这个问题已经在链接中得到了回答。引述如下:

amd64: Ubuntu主存档中提供了由Microsoft签名的shim二进制文件和由Canonical签名的grub二进制文件,它们分别是shim-signed或grub-efi-amd64-signed。


关于由微软签名的shim二进制文件和由Canonical签名的grub二进制文件,这仅适用于计算机出厂时固件中带有微软密钥的情况。用户可以按照"MOK生成和签名过程"部分的描述加载自己的密钥。因此,用户可能希望查询mokutil或类似工具以获取用于shim和grub二进制文件的特定密钥签名信息。 - rlhelinski
看起来这些信息,至少对于 grub 二进制文件来说,可以在 mokutil --list-enrolled 的输出中找到。 - rlhelinski