Linux修改grub菜单

【注】参考自 grub 官方手册

1. 保留上一次 grub 菜单选项

1.1 问题

每次开机时,大部分 Linux 发行版的 grub 菜单都是定位在首选项位置(即当前系统选项位置)。这就导致如果我们电脑安装了多个系统,那么每次开机进入其他系统都要重新选择 grub 菜单选项。而我们一般都是一段时间固定使用一个系统,因此如果 grub 菜单能够记住上一次的菜单选项,我们平常使用就不需要手动切换 grub 菜单选项(除非需要更换开机系统)。这样可以让我们免去每次开机都需要手动查看更改 grub 菜单选项,特别是 Winddows 系统,每次更新后基本都要重启,每次都需要盯着重启那一刻重新选择进入 Windows 系统,不胜其烦。

1.2 解决

修改 Linux 的 /etc/default/grub 文件,添加以下内容:

1
2
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

GRUB_DEFAULT 可取值为选项 ID、选项名称字符串以及 saved,选项 ID 是从 0 开始计数的。

  • 选项 ID 和选项名称字符串都是指定 grub 默认菜单选项。

  • saved 使用 GRUB_SAVEDEFAULT 变量保存的或 grub-set-default 命令设定的选项作为 grub 默认菜单选项。

GRUB_SAVEDEFAULT 变量若设置为 true,则会保留上一次的 grub 菜单选项,默认没有设置该变量。

2. 修改 grub 菜单等待时间

2.1 问题

有些 Linux 发行版开机进入 grub 菜单后等待时间很短,因此每次都需要抓住 grub 菜单出来的那一刻手动按键终止 grub 菜单等待时间倒计时。有时甚至来不及修改 grub 菜单选项,就进入了默认的系统。

2.2 解决

修改 Linux 的 /etc/default/grub 文件中的 GRUB_TIMEOUT 变量值,单位为秒:

1
GRUB_TIMEOUT="30"   # 比如修改为 30 秒的等待时间

GRUB_TIMEOUT 可取值为:

  • 正整数:grub 等待指定秒数。

  • 0:grub 不等待直接进入默认系统。

  • -1:grub 永久等待,不会自动进入默认系统。