当前位置: 首页 > news >正文

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

http://www.cnnetsun.cn/news/4072631.html

相关文章:

  • 游戏运行库修复失败怎么办?用软领驱动大师5步排查并解决
  • gulp-if性能优化揭秘:布尔条件短路背后的流加载优化
  • elastic.js第一课:用MatchQuery轻松实现全文检索
  • 手把手教学:用 Text-To-Video-AI 从文字到成片的 6 步完整实战流程
  • 罗技PUBG压枪宏实战指南:5分钟跑通脚本,3类场景调好参数
  • 认识gulp-if:让Gulp任务条件执行的终极入门指南
  • 别再一张张截图存小红书了:免费无水印下载工具 XHS-Downloader 实测全记录
  • thor雷神项目并发设计模式:goroutine与内存模型避坑指南
  • 升级BeltDrivenEnder3居然不用改固件?零配置运行的原理与兼容性全解答
  • 实现零手工同步:Spock 自动 DDL 复制配置实战教程(完整指南)
  • 秒传链接提取脚本上手指南:3 步让百度网盘文件分享永久有效
  • django-template-partials调试指南:3个常见错误与调试视图异常排查
  • PerceptionBench评测揭示AI视觉感知短板:从模式匹配到场景理解的鸿沟
  • Rekapi 缓动函数完全指南:20+ 缓动曲线让关键帧动画更自然的秘诀
  • Bearded Theme颜色工程探秘:colord库驱动的UI配色自动生成算法
  • Python监督学习实战:从数据预处理到模型部署
  • 2026这6款硬核降AI率工具全网首测,一键把AI检测率精准控到安全区!
  • 单片机计算机毕设之基于 STM32 的 OLED 显示智能晾衣架软硬件一体化设计 安卓 APP 远程控制的 STM32 智能晾衣架系统研究(017203)
  • 如何用秒传链接提取脚本搞定百度网盘永久分享:适合新手的完整上手指南
  • 告别Windows卡顿与隐私担忧,Atlas开源优化方案如何3步实现系统优化?
  • 组合数学与容斥原理:从错位排列到一般化Good Permutations问题求解
  • 零基础也能玩转Dify工作流:40+免费模板的快速上手路线图
  • 旧款Mac免费升级最新macOS完整指南:OpenCore Legacy Patcher 实战教程
  • 零成本上手的AI智能视频剪辑工具:FunClip开源软件保姆级实战教程
  • 2026年8月最新西安 GEO 公司口碑推荐:真实用户评价 + 本地企业实测体验 企业版
  • 换机四次之后,我摸透了输入法词库转换这件事
  • 彻底解决Win10 PowerShell脚本禁止运行问题:执行策略详解与安全配置
  • OpenCore Legacy Patcher 上手指南:让 2009 年的老 Mac 顺畅运行新版 macOS
  • 从沃德十佳看动力技术多元格局:内燃机、混动与氢燃料电池的并行演进
  • 10分钟声纹素材,能炼出什么级别的AI音色?开源变声工具RVC全流程拆解