最安全标准的做法是修改 /etc/default/grub 中的 grub_timeout 值并执行 sudo update-grub;设为 0(可能被 os-prober 强制改为 10)、5 或 -1,同时必须注释掉 grub_hidden_timeout 并确保 grub_timeout_style=menu。

直接改 /etc/default/grub 里的 GRUB_TIMEOUT 值,再运行 sudo update-grub 就生效了。这是最安全、最标准的做法,系统更新也不会被覆盖。
修改 GRUB_TIMEOUT 参数
这个参数控制菜单显示几秒后自动启动默认系统。默认是 10 秒,你可以改成任意整数:
- 设为 0:菜单不显示(但注意——如果同时启用了
os-prober检测双系统,它可能把 0 强制改成 10) - 设为 5:等待 5 秒,适合日常使用
- 设为 -1:菜单一直停留,直到你手动选择
务必注释掉 GRUB_HIDDEN_TIMEOUT
这个参数如果存在且没被注释,会强制隐藏菜单、跳过倒计时逻辑,导致你改了 GRUB_TIMEOUT 也无效。打开 /etc/default/grub,找到类似这行:
在它前面加 # 变成:
更新配置并验证
保存文件后,必须执行命令让修改落地:
- Ubuntu/Debian 系统:
sudo update-grub - Fedora/RHEL/CentOS:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg - Arch Linux:
sudo grub-mkconfig -o /boot/grub/grub.cfg
完成后重启,观察 GRUB 菜单是否按预期时间响应。
额外提示:让菜单始终可见
如果你发现菜单一闪而过或根本没出现,检查 GRUB_TIMEOUT_STYLE 设置:
-
GRUB_TIMEOUT_STYLE=menu:正常显示完整菜单 -
GRUB_TIMEOUT_STYLE=hidden:隐藏菜单(即使设了 timeout 也不显示)→ 改成menu或直接注释掉这一行











