公司动态

Linux grub2‑set‑default 命令:修改 GRUB2 默认启动内核 / 系统项

📅 2026/8/17 23:14:08
Linux grub2‑set‑default 命令:修改 GRUB2 默认启动内核 / 系统项
一、命令简介grub2‑set‑default 是一个用于设置 GRUB2 引导加载程序默认启动项的 Linux 命令。它允许系统管理员指定系统启动时自动选择的内核或操作系统入口。该命令特别适用于多内核安装或双系统环境可以确保系统在重启后自动进入预设的启动项。重要前提使用此命令前必须在 /etc/default/grub 配置文件中设置 GRUB_DEFAULTsaved否则设置将不会生效。二、语法格式bash运行grub2-set-default [OPTION] MENU_ENTRYMENU_ENTRY必需参数指定要设置为默认的启动菜单项。可以是以下三种形式之一数字菜单项的索引号从 0 开始计数。标题菜单项显示的完整标题字符串。标识符菜单项的唯一标识符。三、常用选项及说明表格选项长格式说明-h--help显示此帮助信息并退出。-v--version显示 grub2‑set‑default 的版本信息并退出。无--boot‑directoryDIR指定 GRUB 镜像文件所在的目录。默认情况下命令会在 /boot/grub2 目录下查找使用此选项可以指定一个替代目录 DIR/grub2。这在某些自定义分区或引导环境中非常有用。四、示例用法示例 1查看当前可用的启动菜单项在设置默认内核前通常需要先查看 GRUB2 的配置文件以了解所有可用的选项。bash运行awk -F\ /menuentry / {print $2} /etc/grub2.cfg输出示例plaintextCentOS Linux (5.4.219-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-1160.76.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-3221d376917c458992a952d6327f2d6a) 7 (Core)菜单项的索引从 0 开始。因此上例中0 对应第一个内核 5.4.219‑1.el7.elrepo.x86_641 对应第二个内核 3.10.0‑1160.76.1.el7.x86_64 以此类推。示例 2使用索引号设置默认启动项将第一个内核索引 0设置为默认启动项。bash运行sudo grub2-set-default 0示例 3使用菜单标题设置默认启动项直接使用完整的菜单标题进行设置标题必须与配置文件中的完全一致建议用引号包裹。bash运行sudo grub2-set-default CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)示例 4验证设置并更新 GRUB 配置设置完成后必须运行 grub2‑mkconfig 来重新生成 GRUB2 的主配置文件才能使更改生效。bash运行# 对于使用 BIOS 的系统或大多数情况 sudo grub2-mkconfig -o /boot/grub2/grub.cfg # 对于使用 UEFI 的系统路径可能不同 sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg之后可以重启系统以应用新的默认启动项。bash运行sudo reboot # 或 sudo init 6示例 5使用自定义引导目录如果你的 GRUB2 文件不在默认的 /boot/grub2 目录下可以使用 --boot‑directory 选项。bash运行sudo grub2-set-default --boot-directory/mnt/custom_boot 0五、注意事项GRUB_DEFAULTsaved 是前提这是最关键的一步。编辑 /etc/default/grub 文件确保存在 GRUB_DEFAULTsaved 这一行。修改后需要运行 grub2‑mkconfig 并重启才能激活 “saved” 功能。索引从 0 开始GRUB2 菜单项的计数是从 0 开始的这与许多编程语言的数组索引规则一致。在计算时务必注意。子菜单的影响如果 GRUB 菜单包含子菜单例如 “Advanced options for Ubuntu”其内部的条目索引会继续累加或者需要使用特定的语法如 12 表示主菜单第 2 项的子菜单第 3 项。使用grub2‑editenv list查看当前保存的 saved_entry 值可以帮助理解其格式。持久化生效运行 grub2‑set‑default 命令本身只是将选择记录在 GRUB 的环境块文件中通常是 /boot/grub2/grubenv 或 /boot/efi/EFI/[vendor]/grubenv。必须随后运行grub2‑mkconfig -o [正确的配置文件路径]来确保重启后配置被正确加载。配置文件路径GRUB2 配置文件的路径可能因发行版和引导模式BIOS/UEFI而异。常见的路径有 /boot/grub2/grub.cfg、/boot/grub/grub.cfg 或 EFI 系统分区下的路径。请根据你的系统实际情况确定。错误排查如果设置未生效请检查/etc/default/grub 中 GRUB_DEFAULT 的值。是否执行了 grub2‑mkconfig。使用sudo grub2‑editenv list命令查看 saved_entry 是否已正确设置为目标值。Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8