Linux 命令速查
系统管理 man grub-set-default

grub-set-default

持久设置 GRUB 的默认启动菜单项

返回

补充说明

grub-set-default 把指定菜单项写入 GRUB 环境块的 saved_entry 变量,之后每次启动都默认进入该条目,直到再次修改。

生效前提是 /etc/default/grub 中设置了 GRUB_DEFAULT=saved,并已用 grub-mkconfig 重新生成配置。部分发行版在安装时已经使用 saved 模式;若不是,需要先改配置再执行一次 grub-mkconfig。

它与 grub-reboot 的区别在于持久性:后者写 next_entry,只影响下一次启动;本命令写 saved_entry,持续生效。两者都通过 grub-editenv 修改 /boot/grub/grubenv,可用 grub-editenv list 查看结果。RHEL 系对应命令为 grub2-set-default。

语法

grub-set-default [选项] 菜单项

选项

  • --boot-directory=目录:GRUB 目录,默认 /boot
  • -h / --help:显示帮助
  • -V / --version:显示版本

实例

# 确认 GRUB_DEFAULT=saved
grep '^GRUB_DEFAULT' /etc/default/grub

# 若为其他值,改为 saved 并重新生成配置
sudo sed -i 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT=saved/' /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg

# 列出菜单项,确定要设为默认的条目
grep -E "^menuentry|^submenu" /boot/grub/grub.cfg

# 把第 0 个条目设为默认
sudo grub-set-default 0

# 按标题设置
sudo grub-set-default "Ubuntu"

# 查看 saved_entry
sudo grub-editenv list

# RHEL 系
sudo grub2-set-default 0

若菜单项标题中含空格,务必使用引号。修改后可用 grub-reboot 做一次性验证,确认新条目能正常启动后再依赖它。

参考链接