我正在尝试通过 USB 驱动器安装 Ubuntu 22.04.1,但是当我想在启用安全启动的情况下启动 USB 驱动器时,出现错误Verification failed:(0x1A) Security Violation
。
我需要启用安全启动。当时,我这样做没有任何问题。我最近使用该命令mokutil --reset
清除了机器所有者密钥,因为有很多密钥,我想让事情变得更干净。
我还尝试将 mmx64.efi 和 grubx64.efi 添加到 BIOS 中的受信任文件,但出现了另一个错误(即未找到 shim_lock 协议)。我之前没有做任何与安全启动相关的特殊操作来启动我的 USB 驱动器(即使在我安装第一个 Linux 发行版时)。为什么我现在不能这样做?
答案1
答案2
以下摘录自这个答案我刚刚写的。
这里发生的事情是,Canonical 更新了他们的 UEFI 安全启动签名密钥和您系统的“安全启动高级定位”变量。简而言之,他们这样做是为了确保他们发布的较新的启动文件可启动,而较旧的启动文件则不能。如果您获得更新,然后尝试启动仍在使用较旧文件的操作系统,它将无法工作,并且您会收到“安全违规”错误。
通常情况下,解决方案是更新您的安装,以便您拥有较新的启动文件。但在本例中,您尝试从包含较旧启动文件的 ISO 进行安装。因此您无法更新启动文件。您有两个选择。
- 禁用安全启动并保持原样。
- 禁用安全启动,启动 22.04.1 ISO,安装、更新,然后再次启用安全启动。
遗憾的是,这两种解决方案都要求您至少暂时禁用安全启动。
答案3
您下载并写入 USB 驱动器的 Ubuntu 映像可能未使用计算机 BIOS 的安全启动功能信任的密钥进行签名。这可能是因为该映像未签名,或者用于签名该映像的密钥不在您计算机 BIOS 的受信任密钥列表中。
您必须使用由 bios 信任的密钥签名的引导加载程序。这将允许系统验证引导加载程序的数字签名,并在不触发安全违规错误的情况下加载它。
答案4
下载 22.04.2 版本并启动解决了我的问题。