在 CentOS 里“替换 GRUB 引导”通常不是无缘无故的,一般是为了修复、升级或适配新的启动方式。常见原因可以分为下面几类:
一、GRUB 损坏或无法启动
这是最常见的原因之一。
典型场景
- 系统升级内核后,grub.cfg 没更新
- 磁盘顺序变化(如加了一块盘)
/boot 分区损坏
- BIOS/UEFI 设置变化
- 误删了
/boot/grub2
表现
- 开机直接进入
grub> 或 grub rescue>
- 启动时报
error: file '/grub2/grub.cfg' not found
- 无法选择内核
解决方式
重新安装 GRUB:
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
二、从 BIOS 切换到 UEFI(或反过来)
BIOS → UEFI
- 老机器或旧 CentOS(如 6/7)默认 BIOS
- 新主板默认 UEFI
- 需要:
yum install grub2-efi grub2-efi-modules shim
grub2-install --target=x86_64-efi
UEFI → BIOS
- 服务器强制 BIOS 启动
- 旧系统不支持 UEFI
三、CentOS 版本升级导致 GRUB 变化
常见情况
- CentOS 7 → Rocky / Alma / CentOS Stream
- 内核从 3.x → 5.x
- GRUB 配置结构变化
例如:
/boot/grub2/grub.cfg
/boot/efi/EFI/centos/grub.cfg
四、更换磁盘或 RAID / LVM 结构
场景
- 系统盘从 HDD → SSD
- 使用 LVM / mdadm RAID
- 克隆系统到新盘
GRUB 必须重新写入新磁盘的 MBR 或 EFI
五、安全启动 / 签名问题
- UEFI Secure Boot 开启
- 原 GRUB 未签名
- 需要替换为
shim + signed grub
六、多系统引导管理
- CentOS + Windows
- CentOS + Ubuntu
- 用 CentOS 的 GRUB 统一管理启动项
七、人为误操作
dd 写错盘
- 格式化
/boot
- 手动改 grub.cfg 出错
总结一句话
CentOS 替换 GRUB 引导,本质是为了让系统“能正确找到并启动内核”
如果你能告诉我:
- CentOS 版本
- BIOS 还是 UEFI
- 是开机报错还是主动更换
我可以直接给你对应场景的具体命令。