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

ESXi 如何使用 UEFI 安全引导

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

注: 在已升级的主机上使用 UEFI 安全引导之前,请按照 在升级后的 ESXi 主机上运行安全引导验证脚本中的说明检查兼容性。
图 1. UEFI 安全引导
UEFI 安全引导堆栈包括文本中说明的多个元素。

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

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

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

注: 当您安装或者升级到 vSphere 7.0 Update 2 或更高版本,并且 ESXi 主机具有 TPM 时,TPM 会基于 UEFI 安全引导的 PCR 值使用 TPM 策略来封装敏感信息。如果符合策略,则后续重新引导期间将加载此值。要在 vSphere 7.0 Update 2 及更高版本中禁用或启用 UEFI 安全引导,请参见 启用或禁用安全引导实施以获得安全的 ESXi 配置

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 文件中的信息。