如何在UEFI Shell中查看Secure Boot是否已启用?
如何检测Secure Boot状态(替代NVRAM变量查找的方案)
我完全理解你现在的处境——已经尝试解析NVRAM变量,但就是找不到标记Secure Boot是否启用的那个字段。别着急,这里有几个靠谱的替代方案,不用死磕NVRAM变量也能轻松确认状态:
1. Windows系统下的快速检测方法
- 拿管理员权限打开命令提示符,执行命令:
bcdedit /enum {current},在输出里找secureboot这一行,值为Yes说明已启用,No则是关闭状态。 - 要是习惯用PowerShell,同样开管理员权限,输入
Confirm-SecureBootUEFI,返回True代表Secure Boot已启用,False则为关闭(注意这个命令仅支持UEFI模式启动的系统)。
2. Linux系统下的便捷方式
- 直接读取系统暴露的EFI变量文件:执行
cat /sys/firmware/efi/efivars/SecureBoot-* | hexdump -C,查看输出里的第5个字节,01表示已启用,00则是关闭。 - 更省心的是用
mokutil工具(大部分主流发行版都预装了),输入mokutil --sb-state,会直接返回SecureBoot enabled或SecureBoot disabled的明确结果。
3. 最直接的UEFI/BIOS界面查看
重启电脑,按对应的按键(比如Del、F2、F10,不同主板厂商的按键不同,开机时屏幕底部一般会有提示)进入UEFI/BIOS设置界面,找到"Security"或"Boot"菜单,里面肯定有Secure Boot的开关状态,一眼就能看明白。
补充:如果还是想定位NVRAM变量的话
不同主板厂商对NVRAM变量的命名可能不统一,不一定叫"SecureBoot"。你可以试试枚举所有变量:
- Windows下,用
bcdedit /enum all或者查看注册表路径HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot下的项,这里其实映射了NVRAM的相关内容。 - Linux下用
efivar -l列出所有EFI变量,然后筛选带"Secure"或"Boot"关键字的条目,逐个查看内容试试。
内容的提问来源于stack exchange,提问作者Александр Щетнев
相关产品推荐
相关产品推荐

