GRUB2密码不能防止非法光盘引导,仅限制已进入GRUB菜单后的编辑参数、进入命令行或启动受保护项;防外接介质需BIOS/UEFI设硬盘为唯一启动设备、启用Secure Boot及管理员密码,辅以LUKS全盘加密。

GRUB2密码本身不能防止非法光盘引导。它只限制在当前系统GRUB菜单界面内的操作,比如按e编辑启动参数、按c进入命令行、或直接选择某个菜单项启动——但攻击者完全可关机后插入Live USB或安装光盘,绕过你硬盘上的GRUB2,从外部介质启动并挂载你的系统分区,从而无视所有GRUB密码设置。
GRUB2密码能防什么
它仅对“已进入本机GRUB2菜单后”的行为设限:
- 阻止他人按
e修改内核参数(如添加init=/bin/bash跳过密码登录) - 阻止按
c进入GRUB命令行执行set root、linux、initrd等手动启动 - 若配合
--users标记特定menuentry,还能限制启动该条目需输入凭证
真正防光盘/USB启动需要硬件与固件层控制
要让系统不响应外来启动介质,必须在BIOS/UEFI层面切断入口:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 开机进BIOS/UEFI设置(通常按Del/F2/F10),将Boot Mode设为UEFI Only(禁用Legacy/CSM)
- 在Boot Order中,把硬盘设为第一且唯一可启动设备,移除USB、CD/DVD、Network PXE等选项
- 启用Secure Boot,并确认状态为Enabled(它会拒绝加载未签名的第三方bootloader,包括多数Live系统)
- 为BIOS/UEFI本身设置管理员密码(Setup Password),防止他人重置上述配置
补强:让光盘启动也无权访问你的数据
即使攻击者强行禁用Secure Boot并成功从U盘启动,只要你的系统启用了全盘加密,对方仍无法读取原系统内容:
- 安装或重装系统时勾选“Encrypt my data”(LUKS加密)
- 确保
/boot以外的根分区(如/)由LUKS封装,且密钥不存于/boot - 若硬件支持TPM2,可用
systemd-cryptenroll --tpm2-device=auto将LUKS密钥绑定到本机TPM芯片和PCR值(如Secure Boot开启状态)
GRUB2密码配置参考(仅作配套)
它不防光盘,但作为纵深防御一环仍建议配置:
- 运行
grub2-mkpasswd-pbkdf2生成密文,例如:grub.pbkdf2.sha512.10000.abc... - 编辑
/etc/grub.d/00_header,末尾添加:
set superusers="admin"<br> password_pbkdf2 admin grub.pbkdf2.sha512.10000.abc...
- 对关键启动项加锁,在
/etc/grub.d/40_custom或生成的grub.cfg中,其menuentry开头加--users admin - 执行
grub2-mkconfig -o /boot/grub2/grub.cfg生效

















