RHEL8系统中GRUB2引导配置文件详解与应用

admin
RHEL8系统中,GRUB2作为核心引导加载器,其配置文件管理直接影响系统启动流程,主配置文件/etc/default/grub定义全局参数(如默认启动项、内核参数),/etc/grub.d/目录则通过脚本模块化生成启动项配置,通过grub2-mkconfig命令可整合配置生成/boot/grub2/grub.cfg文件,常见应用包括:修改默认启动项(GRUB_DEFAULT)、调整内核启动参数(如GRUB_CMDLINE_LINUX添加net.ifnames=0禁用 predictable 网络名)、添加自定义启动项(如救援模式)及修复引导问题(如重建引导扇区),掌握GRUB2配置能提升系统引导可控性与运维效率。

在RHEL8(Red Hat Enterprise Linux 8)系统中,GRUB2(Grand Unified Bootloader version 2)作为默认的引导加载程序,承担着加载操作系统内核、初始化系统资源以及提供多系统启动选择的关键角色,GRUB2的配置文件决定了系统的引导行为,包括默认启动项、内核参数、等待时间、菜单样式等,理解并掌握GRUB2配置文件的结构与修改方法,是系统管理员进行系统定制、故障排查和优化的重要技能,本文将详细介绍RHEL8中GRUB2引导配置文件的位置、结构、核心参数及管理操作。

GRUB2配置文件的位置与生成机制

在RHEL8中,GRUB2的配置文件并非直接编辑,而是通过“模板配置+脚本生成”的方式实现,核心配置文件及相关路径如下:

用户级配置文件:/etc/default/grub

这是用户直接修改的唯一推荐配置文件,包含GRUB2的核心参数(如默认启动项、超时时间、内核参数等),修改此文件后,需通过grub2-mkconfig命令重新生成最终的引导配置文件。

RHEL8系统中GRUB2引导配置文件详解与应用

生成的引导配置文件:/boot/grub2/grub.cfg

这是GRUB2实际使用的配置文件,由grub2-mkconfig命令根据/etc/default/grub/etc/grub.d/目录下的脚本以及系统信息(如已安装的内核、文件系统类型等)自动生成。用户不应直接编辑此文件,因为系统更新或内核变更后,文件会被覆盖,导致手动修改失效。

辅助脚本目录:/etc/grub.d/

该目录下存放多个脚本(如00_header10_linux30_os-prober等),用于生成grub.cfg中的不同部分(如菜单标题、Linux内核启动项、其他操作系统检测等)。

  • 00_header:生成菜单标题、超时时间、主题等基础配置;
  • 10_linux:生成已安装Linux内核的启动项;
  • 30_os-prober:检测其他操作系统(如Windows)并添加启动项。

/etc/default/grub文件结构与核心参数详解

/etc/default/grub是一个文本文件,采用“参数名=参数值”的格式,每行一个参数,以下是常用参数及其作用:

GRUB_DEFAULT:设置默认启动项

  • 作用:指定系统启动时默认选择的菜单项。
  • 取值
    • 整数:表示菜单项的索引(从0开始),如0表示第一项;
    • 直接指定启动项的名称(如“CentOS Linux (4.18.0-348.el8.x86_64) 8.4 (Core)”)。
  • 示例
    GRUB_DEFAULT=0  # 默认启动第一个菜单项
    GRUB_DEFAULT="CentOS Linux (4.18.0-348.el8.x86_64) 8.4 (Core)"  # 默认指定名称的启动项

GRUB_TIMEOUT:设置菜单等待时间

  • 作用:显示GRUB菜单的等待时间(秒),超时后自动启动默认项。
  • 取值:正整数(如5表示等待5秒);-1表示无限等待(需手动选择启动项)。
  • 示例
    GRUB_TIMEOUT=5  # 显示菜单5秒后自动启动默认项

GRUB_CMDLINE_LINUX:设置Linux内核启动参数

  • 作用:为所有Linux内核启动项添加默认参数(如文件系统类型、CPU亲和力、日志级别等)。
  • 常用参数
    • rhgb:启用图形化启动界面(简化启动过程,不显示详细日志);
    • quiet:减少启动日志输出,仅显示关键信息;
    • crashkernel=auto:预留内存用于系统崩溃转储(kdump);
    • rd.lvm.lv=rhel/root:指定LVM逻辑卷作为根文件系统(适用于LVM分区);
    • net.ifnames=0:禁用网卡接口的 predictable network names(如使用eth0代替ens33)。
  • 示例
    GRUB_CMDLINE_LINUX="rhgb quiet crashkernel=auto rd.lvm.lv=rhel/root net.ifnames=0"

GRUB_DISABLE_RECOVERY:禁用恢复模式

  • 作用:控制是否在GRUB菜单中显示“Recovery mode”选项。
  • 取值true(禁用)或false(启用,默认)。
  • 示例
    GRUB_DISABLE_RECOVERY=true  # 不显示恢复模式选项

GRUB_THEME:设置菜单主题

  • 作用:指定GRUB菜单的背景图片、字体、颜色等主题样式。
  • 取值:主题文件的路径(需提前准备.pf2格式的字体文件和主题配置文件)。
  • 示例
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码