linux: 探索 GRUB 配置的核心, 理解 /etc/default/grub、grub2.cfg 和 /etc/grub.d/

运维开发王义杰 2024-09-17 17:37:03 阅读 73

在 Linux 系统中,GRUB(GRand Unified Bootloader)是最常用的启动加载器之一。它负责在计算机启动时管理多个操作系统的引导过程。本文将详细介绍 GRUB 配置中的三个关键文件:<code>/etc/default/grub、grub2.cfg,以及 /etc/grub.d/ 目录,帮助大家理解它们的功能、如何互动,以及如何安全地进行修改。

在这里插入图片描述

1. <code>/etc/default/grub:GRUB 的默认配置文件

/etc/default/grub 文件是 GRUB 的主要配置文件,提供了一种简便的方式来管理启动参数。这个文件包含了一系列变量定义,这些变量会影响 GRUB 的行为,例如:

GRUB_DEFAULT:设置默认的启动项,可以是具体的菜单项索引(从 0 开始计数),或者是“saved”(使用最后一次成功启动的菜单项)。GRUB_TIMEOUT:设置菜单显示的等待时间(以秒为单位)。GRUB_CMDLINE_LINUX_DEFAULT:在这里添加的参数将被传递到 Linux 内核,通常用于设定系统的静默启动和图形引导界面。GRUB_CMDLINE_LINUX:这里的参数会在每次启动时传递给内核,通常用于需要永久生效的内核参数,如 intel_iommu=on

对此文件的更改需要运行 update-grub(在基于 Debian 的系统上)或 grub2-mkconfig(在基于 Red Hat 的系统上),以生成新的 GRUB 配置文件。

2. grub2.cfg:GRUB 的配置脚本

位于 /boot/grub//boot/efi/EFI/{distro}/(对于 EFI 系统)目录下的 grub2.cfg 是 GRUB 的核心配置文件,由 grub2-mkconfig 工具自动生成,不应手动编辑。这个文件包含了启动加载的菜单项、加载的模块等详细信息。grub2.cfg 通过读取 /etc/default/grub/etc/grub.d/ 中的脚本来生成,确保了启动配置的准确性和更新的简便性。

3. /etc/grub.d/:GRUB 配置脚本目录

/etc/grub.d/ 目录包含一系列脚本,这些脚本负责生成 grub2.cfg 文件中的具体菜单项和其他配置。这些脚本包括:

00_header:生成 GRUB 菜单的头部信息,如默认启动项和计时设置。10_linux:探测系统中安装的 Linux 内核,并为每个内核创建菜单项。30_os-prober:探测系统中存在的其他操作系统(如 Windows),并为它们创建启动项。40_custom41_custom:这些脚本可以手动编辑,添加自定义的启动项。

/etc/grub.d/ 中的脚本进行修改后,也需要重新生成 grub2.cfg 文件,以确保变更生效。

修改 GRUB 配置的建议

备份重要文件:在进行任何修改之前,备份 /etc/default/grub/etc/grub.d/ 目录下的文件。使用官方工具:使用 update-grubgrub2-mkconfig 来更新 GRUB 配置,避免直接编辑 grub2.cfg 文件。测试新配置:在正式环境中应用更改前,可以在测试机或虚拟机中测试新的 GRUB 配置,以避免启动问题。通过了解这些文件及其相互作用,我们可以更有效地管理 Linux 系统的启动过程,确保系统的高可用性和安全性。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。