需综合调整GRUB_TIMEOUT、GRUB_TIMEOUT_STYLE、GRUB_DEFAULT和GRUB_SAVEDEFAULT,并在UEFI系统中同步更新EFI分区内的grub.cfg,才能实现多重引导菜单可见、可记忆且稳定生效。

想让电脑开机时多重引导菜单停留足够时间供你从容选择系统,又不希望它卡太久影响日常启动效率,就必须对延迟时间做精细调整——不能只改一个参数就完事,得结合菜单可见性、默认项记忆、UEFI固件兼容性一并处理。
确认当前GRUB真实菜单结构与索引
别靠眼睛数屏幕上的菜单项,/boot/grub/grub.cfg是自动生成的,显示顺序和内部索引可能错位。先执行这行命令:
grep -E "menuentry |submenu " /boot/grub/grub.cfg | sed "s/^.*['\"]\([^'\"]*\)['\"].*$/\1/" | nl
输出带编号的列表,编号从1开始,但GRUB内部索引从0算起;注意带 submenu 的行只是文件夹标题,不可启动,不能当默认项设。
【必须跳过 submenu 行去数真正的可启动项】
修改 /etc/default/grub 并强制菜单可见
这一步决定菜单是否真的能被你看到,而不仅是倒计时走完才闪一下。
用 sudo vim /etc/default/grub 打开配置文件。
找到 GRUB_TIMEOUT 这一行,把它改成你想要的整数,比如 8(6–15 秒之间最稳妥)。
必须同时确保 GRUB_TIMEOUT_STYLE=menu —— 如果它是 hidden 或 count,哪怕设了 30 秒,菜单也可能完全不出现。
保存退出后,立刻运行 sudo update-grub(Ubuntu/Debian)或 sudo grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS/Fedora),否则所有修改白写。
启用“记住上次选择”机制
让双系统切换更自然:选一次 Windows,下次开机就默认进 Windows;再选一次麒麟,下下次就自动进麒麟。
第一步:确认 /etc/default/grub 中这三行同时存在且正确:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT=10
第二步:如果 GRUB_SAVEDEFAULT 这行原本不存在,就在文件末尾手动加进去;如果 GRUB_DEFAULT 不是 saved,必须同步改成 saved。
第三步:执行 sudo update-grub 更新配置。
第四步:重启,在 GRUB 菜单中用方向键选中目标系统后按回车——这次选择会被记录为下次默认项。
UEFI 环境下额外检查点
在部分麒麟、统信、Deepin 等国产 UEFI 系统中,即使改了 /etc/default/grub,菜单仍可能一闪而过,因为 EFI 分区里的 grub.cfg 没同步更新。
执行 ls /boot/efi/EFI/ | grep -E "(kylin|uos|deepin)" 查看厂商目录名。
若存在 kylin 目录,则运行 sudo grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg;若为 uos,则路径换成 /boot/efi/EFI/uos/。
这步不做,UEFI 固件加载的仍是旧配置,前面所有操作都无效。

















