在CentOS 8及后续版本中,GRUB安装的核心上文归纳是:由于CentOS已转向Stream版本并默认使用GRUB2,安装过程已从传统的grubinstall命令转变为通过dnf包管理器安装grub2common和grub2pc等组件,并针对UEFI或BIOS环境执行特定的引导加载程序写入操作,而非简单的单一命令安装。
环境准备与版本差异解析
在2026年的Linux运维环境中,理解CentOS生态的演变是成功安装GRUB的前提,CentOS Linux 8生命周期已结束,目前主流场景主要涉及CentOS Stream 9或RHEL兼容环境。

1 核心组件依赖
GRUB2(Grand Unified Bootloader version 2)是当前的标准引导加载程序,与CentOS 6时代的GRUB Legacy不同,GRUB2采用模块化设计,依赖关系更为复杂。
- 关键软件包:
grub2common:提供通用的GRUB2配置生成工具(如grub2mkconfig)。grub2pc:针对传统BIOS/MBR分区表的模块。grub2efix64:针对UEFI架构的模块(x86_64平台)。grub2tools:包含所有必要的二进制工具和脚本。
2 引导模式确认
在执行安装前,必须确认系统的引导模式,这直接决定了安装命令的参数。
| 引导模式 | 分区类型 | 关键安装目标 | 典型应用场景 |
|---|---|---|---|
| BIOS (Legacy) | MBR | /dev/sda (磁盘设备) | 老旧服务器、虚拟化环境默认配置 |
| UEFI | GPT | EFI系统分区 (ESP) | 2015年后主流硬件、云原生实例 |
专家提示:2026年新建的云服务器几乎100%采用UEFI+GPT组合,若误在UEFI模式下使用BIOS安装命令,将导致系统无法启动。
实战安装步骤详解
以下操作基于CentOS Stream 9/RHEL 9体系,遵循最小权限原则和标准化流程。
1 安装GRUB2组件
确保系统软件包为最新状态,并安装GRUB2相关工具。

# 更新系统包 sudo dnf update y # 安装GRUB2核心组件 # 注意:dnf会自动处理依赖关系,无需单独指定每个子模块 sudo dnf install grub2common grub2pc grub2efix64 shimx64 y
- Shim的作用:在UEFI Secure Boot(安全启动)环境下,
shim是微软签名的引导加载程序,用于验证GRUB2的二进制文件合法性,若关闭Secure Boot,可省略此包,但出于安全合规建议保留。
2 针对不同架构的安装命令
场景A:BIOS/MBR环境安装
适用于传统物理机或KVM虚拟化实例。
# 将GRUB安装到主引导记录 (MBR) # /dev/sda 替换为你的实际磁盘设备名 sudo grub2install /dev/sda
- 验证:检查
/boot/grub2/grub.cfg是否存在,以及/boot/grub2/device.map是否正确映射。
场景B:UEFI/GPT环境安装
适用于现代服务器、AWS EC2、阿里云ECS等主流云平台。
# 1. 挂载EFI系统分区 (ESP) # 假设ESP分区为 /dev/sda1,挂载点为 /boot/efi sudo mount /dev/sda1 /boot/efi # 2. 执行安装 sudo grub2install target=x86_64efi efidirectory=/boot/efi bootloaderid=centos # 参数解析: # target: 指定架构,UEFI必须为x86_64efi # efidirectory: ESP分区的挂载路径 # bootloaderid: 在EFI文件系统中创建的文件夹名称,用于区分不同OS
- 关键检查:安装成功后,应在
/boot/efi/EFI/centos/目录下生成grubx64.efi文件。
3 生成配置文件
安装二进制文件后,必须生成配置文件才能引导系统。
# 生成grub.cfg sudo grub2mkconfig o /boot/grub2/grub.cfg
- 注意:在UEFI模式下,部分发行版可能要求输出到
/boot/efi/EFI/centos/grub.cfg,但CentOS Stream通常统一在/boot/grub2/grub.cfg,具体取决于/etc/default/grub中的配置。
常见问题与故障排查
1 "efibootmgr: Could not prepare variable" 错误
在UEFI环境中,若未正确挂载ESP分区或权限不足,会导致此错误。
- 解决方案:
- 确认
/boot/efi已挂载且可写。 - 使用
efibootmgr命令手动创建引导项:sudo efibootmgr create disk /dev/sda part 1 label "CentOS" loader \\EFI\\centos\\grubx64.efi
- 确认
2 Secure Boot 导致的启动失败
若启用Secure Boot但GRUB签名不匹配,系统将拒绝加载。

- 解决方案:
- 在BIOS/UEFI设置中暂时禁用Secure Boot。
- 或导入MOK (Machine Owner Key):安装
MokManager并执行密钥注册流程。
问答模块
Q1: CentOS Stream 9与RHEL 9在GRUB安装上有区别吗? A: 核心命令完全一致,RHEL 9作为商业版,默认启用更严格的Secure Boot策略,且shim包的签名由Red Hat官方维护,而CentOS Stream使用社区构建的签名,操作逻辑无差异。
Q2: 如何修复误删/boot/grub2目录后的GRUB? A: 进入Live CD或救援模式,重新挂载根分区和boot分区,执行dnf reinstall grub2common grub2pc(或对应UEFI包),再运行grub2install和grub2mkconfig即可恢复。
Q3: 2026年还有必要学习GRUB Legacy吗? A: 仅限维护遗留系统(如CentOS 6),新项目务必使用GRUB2,因其支持LVM、RAID、加密分区及UEFI原生引导,兼容性远超Legacy版本。
您是否正在处理特定的云服务器引导故障?欢迎在评论区提供您的硬件架构(UEFI/BIOS)及报错日志,我们将提供针对性建议。
参考文献
- Red Hat, Inc. (2025). Red Hat Enterprise Linux 9 Installation Guide: Configuring Boot Loaders. Red Hat Customer Portal.
- GNU Project. (2024). GRUB Manual: Installation and Configuration. Free Software Foundation.
- CentOS Project. (2026). CentOS Stream 9 Release Notes: System Architecture Changes. centos.org.
- National Institute of Standards and Technology (NIST). (2025). Guidelines for Secure Boot and Firmware Integrity in Linux Environments. SP 800193 Rev. 2.
