23.10. 使用私钥签名 GRUB 构建
要在 UEFI 安全引导系统上使用自定义 GRUB 构建,请使用私钥对其进行签名。这是自定义构建所必需的,或者删除了 Microsoft 信任锚。
先决条件
- 您已生成了一个公钥和私钥对,并了解公钥的有效日期。详情请参阅生成公钥和私钥对。
- 您已在目标系统上注册了公钥。详情请查看在 MOK 列表中添加公钥在目标系统中注册公钥。
- 您有一个可用于签名的 GRUB EFI 二进制文件。
流程
在 x64 构架上:
创建一个签名的 GRUB EFI 二进制文件:
# pesign --in /boot/efi/EFI/redhat/grubx64.efi \ --out /boot/efi/EFI/redhat/grubx64.efi.signed \ --certificate 'Custom Secure Boot key' \ --sign将
Custom Secure Boot key替换为您之前选择的名称。可选:检查签名:
# pesign --in /boot/efi/EFI/redhat/grubx64.efi.signed \ --show-signature使用签名的二进制文件覆盖未签名的二进制文件:
# mv /boot/efi/EFI/redhat/grubx64.efi.signed \ /boot/efi/EFI/redhat/grubx64.efi警告当覆盖 grub 二进制文件时,您的系统可能无法正常引导,您可能需要从系统镜像重新安装 grub。
在 64 位 ARM 架构中:
创建一个签名的 GRUB EFI 二进制文件:
# pesign --in /boot/efi/EFI/redhat/grubaa64.efi \ --out /boot/efi/EFI/redhat/grubaa64.efi.signed \ --certificate 'Custom Secure Boot key' \ --sign将
Custom Secure Boot key替换为您之前选择的名称。可选:检查签名:
# pesign --in /boot/efi/EFI/redhat/grubaa64.efi.signed \ --show-signature使用签名的二进制文件覆盖未签名的二进制文件:
# mv /boot/efi/EFI/redhat/grubaa64.efi.signed \ /boot/efi/EFI/redhat/grubaa64.efi