必须完成固件层设置、引导程序适配、密钥注册和状态验证四环节,否则将导致黑屏或grub无法加载;具体包括uefi bios中启用secure boot并设为uefi模式、安装shim-signed等组件、重装grub时使用--no-nvram参数、通过mok注册自定义密钥,并用mokutil和dmesg验证状态。

要在Linux系统(特别是Ubuntu)上正确启用Secure Boot并确保系统稳定启动,必须完成固件层设置、引导程序适配、密钥注册和状态验证四个环节,漏掉任一环节都可能导致开机黑屏或GRUB无法加载。
进入UEFI BIOS启用Secure Boot
重启电脑,在品牌Logo出现瞬间连续按F2(联想/戴尔)、Del(华硕/技嘉)或F10(惠普),具体键位以主板型号为准;进入后切换到Security标签页,找到Secure Boot选项,将其设为Enabled;【必须同时确认Boot Mode为UEFI而非Legacy】,否则Secure Boot功能不可用;保存设置并退出,系统将自动重启。
安装Secure Boot支持组件
在已运行的Ubuntu系统中执行以下命令:
sudo apt update && sudo apt install --reinstall shim-signed grub-efi-amd64-signed mokutil
shim-signed是微软签名的“垫片”程序,它作为第一道信任链入口,负责加载后续被Canonical签名的GRUB;grub-efi-amd64-signed提供UEFI环境下可验证的引导加载器;mokutil用于管理自定义密钥,缺一不可。
重新安装GRUB并更新配置
第一步:确认EFI系统分区挂载点,运行df -h | grep efi,通常为/boot/efi;
第二步:执行grub-install命令,注意使用--no-nvram参数:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu-secureboot --no-nvram
第三步:更新GRUB菜单配置:
sudo update-grub
这一步会扫描所有操作系统(包括Windows),生成包含双系统选项的新启动项;【若跳过--no-nvram直接写入NVRAM,可能覆盖原有Windows启动项导致无法进Win】。
注册Machine Owner Key(MOK)
方法一:系统自动触发(推荐)
当安装NVIDIA驱动、VirtualBox或DKMS模块时,终端会弹出蓝紫色“Configuring Secure Boot”界面,输入密码后重启,进入MOK管理界面(蓝色背景),选择“Enroll MOK”→“Continue”→输入刚才设置的密码→“Done”,即可完成注册。
方法二:手动注册
生成密钥对:openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=My_Ubuntu_MOK/"
导入密钥:sudo mokutil --import MOK.der
重启后进入MOK Manager完成注册。
验证Secure Boot是否生效
执行sudo mokutil --sb-state,输出“SecureBoot enabled”即表示已激活;
再运行dmesg | grep -i "secure boot",若看到“Secure boot enabled”字样,说明内核已识别该状态;
最后检查shim是否加载:ls /boot/efi/EFI/ubuntu/shimx64.efi,文件存在即表明垫片程序已正确部署。











