gpu@rockylinux9 bios安全引导检查

在 Rocky Linux 9 中检查 BIOS 安全引导(Secure Boot)的状态。


检查bios secure方法

m1. 使用 mokutil 检查安全引导状态

mokutil 是一个用于管理机器所有者密钥(MOK)和检查安全引导状态的工具。在 Rocky Linux 9 中,你可以使用以下命令检查:

1
mokutil --sb-state
  • 输出解释
    • 如果返回 SecureBoot enabled,说明安全引导已启用。
    • 如果返回 SecureBoot disabled,说明安全引导已禁用。
    • 如果返回其他信息(如错误),可能需要检查 UEFI 设置或确认系统是否支持安全引导。

安装 mokutil(如果未安装):

1
sudo dnf install -y mokutil

m2. 检查系统信息

你可以通过查看系统日志或内核信息来确认安全引导状态:

1
dmesg | grep -i secure
  • 输出示例
    • 如果包含类似 Secure boot enabled 的信息,说明安全引导已启用。
    • 如果包含 Secure boot disabled 或无相关信息,说明安全引导可能未启用。

m3. 检查 UEFI 固件设置

如果命令行工具无法提供明确信息,可以直接进入 BIOS/UEFI 设置界面检查:

  1. 重启系统。
  2. 在启动时按特定按键(通常是 F2DELF12,具体取决于主板制造商)进入 UEFI 设置。
  3. 导航到 BootSecurity 选项卡,查找 Secure Boot 设置。
    • 如果设置为 EnabledOn,安全引导已启用。
    • 如果设置为 DisabledOff,安全引导已禁用。

m4. 验证内核模块签名

在安全引导启用时,所有内核模块都必须经过签名。你可以通过以下命令检查模块签名状态:

1
modinfo <module_name>

例如:

1
modinfo vfat
  • 检查输出中的 signature 字段。如果存在签名信息,说明模块已正确签名,符合安全引导要求。

m5. 使用 bootctl(如果系统使用 systemd-boot)**

1
bootctl status

查看输出中的 Secure Boot: 字段。

[root@vgt-rocky9-60 ~]# bootctl satus
Unknown command verb satus.

[root@vgt-rocky9-60 ~]# bootctl
systemd-boot not installed in ESP.
System:
Not booted with EFI  ### no efi

Available Boot Loaders on ESP:
          ESP: /boot/efi (/dev/disk/by-partuuid/66fe1d43-2adf-44f0-9219-0c666d0a3a55)
         File: └─/EFI/BOOT/BOOTX64.EFI

Boot Loader Entries:
        $BOOT: /boot/efi (/dev/disk/by-partuuid/66fe1d43-2adf-44f0-9219-0c666d0a3a55)

0 entries, no entry could be determined as default.

启用情况下导入密钥

1.检查bios secure

dnf install mokutil  -y

mokutil --sb-state

EFI variables are not supported on this system
# 如果显示 SecureBoot enabled,说明安全引导状态启用

2.编译驱动后导入密钥

对于启用安全引导的计算机,需要手动导入密钥。

2.1因为 dkms 本身对所有模块进行了签名,因此只需要注册它使用的密钥,就可以使 BIOS SecureBoot 正常启用了。

2.2运行mokutil --import /var/lib/dkms/mok.pub,会提醒输入一次性密码。

2.3重启电脑,您应该会看到 MOK Manager,按任意键进入菜单。

2.4在 MOK Manager 中,选择“Enroll MOK”,然后选择“Continue”,最后选择“Yes”。您将返回主屏幕,但主屏幕中没有“Enroll MOK”按钮。

2.5选择“Reboot”,然后按回车键。现在您的系统将重新启动。

2.6在 BIOS 中启用 SecureBoot 即可。 现在,您的所有 DKMS 模块都将能够在启用 SecureBoot 的情况下正常运行

执行命令

# 输入以下命令,提醒输入一次性密码,在重启计算机时,进入 MOK Manager 管理界面,需要输入对应密码,再重启即可。
[root@gpu-server-001 ~]# mokutil --import /var/lib/dkms/mok.pub

# 列出密钥
[root@gpu-server-001 ~]# mokutil --list-new

# 重启计算机,进入 MOK Manager 管理界面,输入刚刚设置的密码(非 SSH 可操作,需要在显示器或 IPMI 等远程管理工具上进行操作)
[root@gpu-server-001 ~]# reboot

# 重启后,验证证书是否加载成功[root@gpu-server-001 ~]# dmesg | grep cert

如果启用bios secure 需要开机进入tty 输入密码

Refer