news 2026/8/17 23:14:00

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux grub2‑set‑default 命令:修改 GRUB2 默认启动内核 / 系统项

一、命令简介

grub2‑set‑default 是一个用于设置 GRUB2 引导加载程序默认启动项的 Linux 命令。它允许系统管理员指定系统启动时自动选择的内核或操作系统入口。该命令特别适用于多内核安装或双系统环境,可以确保系统在重启后自动进入预设的启动项。

重要前提:使用此命令前,必须在 /etc/default/grub 配置文件中设置 GRUB_DEFAULT=saved,否则设置将不会生效。

二、语法格式

bash

运行

grub2-set-default [OPTION] MENU_ENTRY

MENU_ENTRY必需参数,指定要设置为默认的启动菜单项。可以是以下三种形式之一:

  • 数字:菜单项的索引号(从 0 开始计数)。
  • 标题:菜单项显示的完整标题字符串。
  • 标识符:菜单项的唯一标识符。

三、常用选项及说明

表格

选项长格式说明
-h--help显示此帮助信息并退出。
-v--version显示 grub2‑set‑default 的版本信息并退出。
--boot‑directory=DIR指定 GRUB 镜像文件所在的目录。默认情况下,命令会在 /boot/grub2 目录下查找,使用此选项可以指定一个替代目录 DIR/grub2。这在某些自定义分区或引导环境中非常有用。

四、示例用法

示例 1:查看当前可用的启动菜单项

在设置默认内核前,通常需要先查看 GRUB2 的配置文件以了解所有可用的选项。

bash

运行

awk -F\' '/menuentry / {print $2}' /etc/grub2.cfg

输出示例:

plaintext

CentOS 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_64
  • 1 对应第二个内核 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

五、注意事项

  1. GRUB_DEFAULT=saved 是前提:这是最关键的一步。编辑 /etc/default/grub 文件,确保存在 GRUB_DEFAULT=saved 这一行。修改后,需要运行 grub2‑mkconfig 并重启才能激活 “saved” 功能。

  2. 索引从 0 开始:GRUB2 菜单项的计数是从 0 开始的,这与许多编程语言的数组索引规则一致。在计算时务必注意。

  3. 子菜单的影响:如果 GRUB 菜单包含子菜单(例如 “Advanced options for Ubuntu”),其内部的条目索引会继续累加,或者需要使用特定的语法(如 1>2 表示主菜单第 2 项的子菜单第 3 项)。使用grub2‑editenv list查看当前保存的 saved_entry 值可以帮助理解其格式。

  4. 持久化生效:运行 grub2‑set‑default 命令本身只是将选择记录在 GRUB 的环境块文件中(通常是 /boot/grub2/grubenv 或 /boot/efi/EFI/[vendor]/grubenv)。必须随后运行grub2‑mkconfig -o [正确的配置文件路径]来确保重启后配置被正确加载。

  5. 配置文件路径:GRUB2 配置文件的路径可能因发行版和引导模式(BIOS/UEFI)而异。常见的路径有 /boot/grub2/grub.cfg、/boot/grub/grub.cfg 或 EFI 系统分区下的路径。请根据你的系统实际情况确定。

  6. 错误排查:如果设置未生效,请检查:

  • /etc/default/grub 中 GRUB_DEFAULT 的值。
  • 是否执行了 grub2‑mkconfig。
  • 使用sudo grub2‑editenv list命令查看 saved_entry 是否已正确设置为目标值。

Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd=7uz8

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/17 23:13:16

游戏运行库修复失败怎么办?用软领驱动大师5步排查并解决

游戏运行库是大型游戏正常启动的基础依赖,主要包括 DirectX、Microsoft Visual C Redistributable、.NET Framework 等组件。它们一旦损坏或版本不匹配,游戏就会在启动阶段弹窗报错,而手动修复又常常出现“安装失败”“修复失败”的情况。这篇…

作者头像 李华
网站建设 2026/8/17 23:12:06

gulp-if性能优化揭秘:布尔条件短路背后的流加载优化

gulp-if性能优化揭秘:布尔条件短路背后的流加载优化 【免费下载链接】gulp-if Conditionally run a task 项目地址: https://gitcode.com/gh_mirrors/gu/gulp-if gulp-if 是 gulp 生态中最受欢迎的条件执行插件,一句话概括就是"Conditionall…

作者头像 李华
网站建设 2026/8/17 23:11:45

elastic.js第一课:用MatchQuery轻松实现全文检索

elastic.js第一课:用MatchQuery轻松实现全文检索 【免费下载链接】elastic.js A JavaScript implementation of the elasticsearch Query DSL 项目地址: https://gitcode.com/gh_mirrors/el/elastic.js elastic.js 是一个用 JavaScript 实现的 Elasticsearch…

作者头像 李华
网站建设 2026/8/17 23:11:18

手把手教学:用 Text-To-Video-AI 从文字到成片的 6 步完整实战流程

手把手教学:用 Text-To-Video-AI 从文字到成片的 6 步完整实战流程 【免费下载链接】Text-To-Video-AI Generate video from text using AI 项目地址: https://gitcode.com/gh_mirrors/te/Text-To-Video-AI 想用 AI 视频生成工具把一段文字变成一部有配音、有…

作者头像 李华
网站建设 2026/8/17 23:08:16

罗技PUBG压枪宏实战指南:5分钟跑通脚本,3类场景调好参数

罗技PUBG压枪宏实战指南:5分钟跑通脚本,3类场景调好参数 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 打靶场里练了几百…

作者头像 李华
网站建设 2026/8/17 23:08:08

认识gulp-if:让Gulp任务条件执行的终极入门指南

认识gulp-if:让Gulp任务条件执行的终极入门指南 【免费下载链接】gulp-if Conditionally run a task 项目地址: https://gitcode.com/gh_mirrors/gu/gulp-if gulp-if 是 gu/gulp-if 项目下的一个轻量级 Gulp 插件,它的核心功能就是条件执行 Gulp …

作者头像 李华