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

grub-editenv

读写 GRUB 环境块中的变量

返回

补充说明

grub-editenv 用来查看和修改 GRUB 的 environment block(环境块),也就是 /boot/grub/grubenv 文件。GRUB 在启动时读取其中的变量,grub-reboot、grub-set-default 实际上就是通过修改 next_entry、saved_entry 等变量实现的。

环境块是一个固定大小的小文件(通常 1024 字节),以 # GRUB Environment Block 开头,后面是 键=值 行。它由 GRUB 与系统工具共同读写,手工编辑容易破坏格式,因此应使用本命令。

常见变量包括 saved_entry(默认启动项)、next_entry(仅下次启动生效)、menu_auto_hide、feature_* 等。设置了 GRUB_DEFAULT=saved 时,saved_entry 才会被 GRUB 使用。

语法

grub-editenv [选项] 文件 命令 [参数...]

不指定文件时默认使用 /boot/grub/grubenv(EFI 系统上通常是 /boot/grub/grubenv,部分发行版为 /boot/grub2/grubenv)。

命令

  • create:创建空的环境块
  • set 变量=值 [变量=值...]:设置变量
  • unset 变量...:删除变量
  • list:列出全部变量
  • edit:用 $EDITOR 交互编辑

实例

# 查看当前环境块内容
sudo grub-editenv list

# 设置下次启动进入指定菜单项(需与 grub.cfg 中的条目 id 对应)
sudo grub-editenv set next_entry="1>0"

# 清除“仅下次启动”设置
sudo grub-editenv unset next_entry

# 查看默认保存的启动项
sudo grub-editenv list | grep saved_entry

# 重新创建环境块(先确认路径存在)
sudo grub-editenv /boot/grub/grubenv create

修改后无需运行 grub-mkconfig:next_entry 只在下次启动时被读取,随后 GRUB 会清除它。若需要持久改变默认启动项,应使用 grub-set-default。

参考链接