GRUB2 的两层配置
GRUB2 的配置分两层:管理员改的是参数文件与生成脚本目录,真正被读取的是生成出来的主配置文件。改了参数文件却不重新生成,等于什么都没改——这是最高频的误解。生成时需要按引导模式指定输出路径:较新模式的路径在引导分区里且各发行版的目录名不同,传统模式则指向系统盘上的固定位置。生成前备份现有主配置文件是必要动作,因为生成过程出错可能把文件写坏,机器就起不来了。
基本信息
| 参数文件 | 管理员直接编辑的默认项文件 |
|---|---|
| 生成脚本目录 | 在此目录下按序号执行生成逻辑 |
| 主配置文件 | 引导时真正读取的文件,由生成动作产生 |
| 生成命令 | 按引导模式指定输出路径 |
| 备份要求 | 生成前先备份现有主配置文件 |
| 适用平台 | Kylin V10 / UOS 服务器版 / openEuler |
典型使用场景
- 调整默认启动项:内核升级后指定默认使用的条目
- 修改等待时间:为远程重启留出选择旧内核的窗口
- 内核参数追加:按需添加内核启动参数
- 引导项清理:移除失效的旧内核条目
- 故障恢复:系统升级后引导异常时用旧内核启动并修复
- 批量统一:多台机器统一引导配置参数
修改默认项并重新生成
修改默认项并重新生成
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak # 先备份现有配置
vim /etc/default/grub
# GRUB_TIMEOUT=5 # 等待时间
# GRUB_DEFAULT=saved # 默认启动项策略
grub2-mkconfig -o /boot/grub2/grub.cfg # 传统模式的输出路径
# 较新模式:输出到引导分区上的对应目录
ls -l /boot/grub2/grub.cfg # 确认文件已更新配置层次读法
| 对象 | 作用 | 注意点 |
|---|---|---|
| 参数文件 | 声明默认项与等待时间 | 改完必须重新生成才生效 |
| 生成脚本目录 | 按序号拼接生成逻辑 | 新增脚本应遵循序号顺序 |
| 主配置文件 | 引导时实际读取 | 不建议手工编辑 |
| 输出路径 | 随引导模式变化 | 路径写错等于生成到无用位置 |
| 旧内核条目 | 保留用于回退 | 清理前确认新内核可正常启动 |
生成动作有覆盖主配置文件的风险:一旦生成过程中出错导致文件被截断,机器下次重启就无法引导。因此生成前必须备份,生成后核对文件大小与内容是否合理,并保留可用的救援介质或带外通道。
较新模式下的输出路径里包含发行版自己的目录名,不同发行版命名不同,按实际目录填写;写错路径不会报错,只是配置没落到生效位置,表现为「改了没反应」。