18.3. 创建 SecureBoot 虚拟机

您可以创建一个使用 SecureBoot 特性的 Linux 虚拟机(VM),这将确保您的虚拟机运行加密签名的操作系统。如果虚拟机的客户机操作系统已被恶意软件更改,这将非常有用。在这种场景下,SecureBoot 会阻止虚拟机启动,从而停止可能将恶意软件传播给您的主机。

先决条件

  • 虚拟机是 Q35 机器类型。
  • edk2-OVMF 软件包已安装:

    # dnf install edk2-ovmf
  • 操作系统(OS)安装源可存在于本地或者网络中。可以是以下格式之一:

    • 安装介质的 ISO 镜像
    • 现有虚拟机安装的磁盘镜像

      警告

      在 RHEL 9 中无法从主机 CD-ROM 或者 DVD-ROM 设备安装。当使用 RHEL 9 中的任何虚拟机安装方法时,如果选择了 CD-ROM 或者 DVD-ROM 作为安装源,则安装将失败。如需更多信息,请参阅红帽知识库

  • 可选:对于快速、简单的配置安装,可以使用 Kickstart 文件。

流程

  1. 使用 virt-install 命令创建虚拟机,如 使用命令行界面创建虚拟机 中所述。对于 --boot 选项,请使用 uefi,nvram_template=/usr/share/OVMF/OVMF_VARS.secboot.fd 值。这会使用 OVMF_VARS.secboot.fdOVMF_CODE.secboot.fd 文件作为虚拟机非易失性 RAM(NVRAM)设置的模板,该设置启用了 SecureBoot 特性。

    例如:

    # virt-install --name rhel8sb --memory 4096 --vcpus 4 --os-variant rhel9.0 --boot uefi,nvram_template=/usr/share/OVMF/OVMF_VARS.secboot.fd --disk boot_order=2,size=10 --disk boot_order=1,device=cdrom,bus=scsi,path=/images/RHEL-9.0-installation.iso
  2. 根据屏幕上的说明,按照操作系统安装过程进行操作。

验证

  1. 客户机操作系统安装后,通过打开 图形客户机控制台 中的终端或 使用 SSH 连接到客户机 OS,以访问虚拟机的命令行。
  2. 要确认是否在虚拟机上启用了 SecureBoot,请使用 mokutil --sb-state 命令:

    # mokutil --sb-state
    SecureBoot enabled