安全引导属于 UEFI 固件标准的一部分。启用安全引导后,计算机会拒绝加载任何 UEFI 驱动程序或应用程序,除非操作系统引导加载程序以加密形式进行签名。从 vSphere 6.5 开始,如果在硬件中启用了安全引导,则 ESXi 会加以支持。

UEFI 安全引导概述

ESXi 版本 6.5 和更高版本在引导堆栈的各个级别上均支持 UEFI 安全引导。

注:

在升级到 ESXi 6.5 的主机上使用 UEFI 安全引导之前,请按照在升级后的 ESXi 主机上运行安全引导验证脚本中的说明检查兼容性。如果使用 esxcli 命令升级 ESXi 主机,则升级不会更新引导加载程序。在这种情况下,无法在此系统上执行安全引导。

图 1. UEFI 安全引导
UEFI 安全引导堆栈包括文本中说明的多个元素。

启用安全引导后,引导顺序如下所示。

  1. 从 vSphere 6.5 开始,ESXi 引导加载程序包含 VMware 公用密钥。该引导加载程序使用此密钥验证内核签名以及包含安全引导 VIB 验证器的小型系统子集。

  2. VIB 验证器验证系统上安装的每个 VIB 软件包。

此时将引导整个系统以及属于 UEFI 固件的证书中的可信 root。

UEFI 安全引导故障排除

如果安全引导在引导顺序的任何一级别上失败,则会出错。

错误消息取决于硬件供应商和验证失败的级别。

  • 如果尝试使用未签名或已被篡改的引导加载程序进行引导,则会在执行引导顺序时出错。确切消息取决于硬件供应商。此消息可能类似以下错误,但可能有所不同。

    UEFI0073: Unable to boot PXE Device...because of the Secure Boot policy 
  • 如果内核已被篡改,则会出现类似以下结果的错误。

    Fatal error: 39 (Secure Boot Failed)
  • 如果软件包(VIB 或驱动程序)已被篡改,则会显示紫色屏幕以及以下消息。

    UEFI Secure Boot failed:
    Failed to verify signatures of the following vibs (XX)

要使用安全引导解决问题,请执行以下步骤。

  1. 禁用安全引导并重新引导主机。

  2. 运行安全引导验证脚本(请参见在升级后的 ESXi 主机上运行安全引导验证脚本)。

  3. 查看 /var/log/esxupdate.log 文件中的信息。