0x01 序
此文档适用于 RHEL 7.x 与 CENTOS 7.x 版本,其它版本未经过验证。
在对一批设备批量修改内核参数后,发现有一台设备失联,经检查发现该设备启动后显示 grub>
,导致该原因的可能性为 grub 配置文件错误、损坏或丢失,致使操作系统无法正确引导启动,更新的内核参数如下,本次操作使用 ansible 执行,但是只有一台设备出现异常,导致该问题的原因未知,故简单简单记录下修复过程。
1
| grubby --update-kernel=ALL --args="numa=off"
|
0x02 修复
首先列出所有的磁盘
我这边执行结果如下,系统盘为 hd0
,并且包含3
个分区(省略数据盘···)
(hd0),(hd0,msdos1),(hd0,msdos2),(hd0,msdos3)
确定 boot 分区
1
| grub> ls (hd0,msdos2) /boot/grub
|
如果该目录存在,则会列出该目录下的所有文件,不存在则会报错,如果你的 boot 为独立的分区则使用下面这条命令
1
| grub> ls(hd0,msdos2) /grub2
|
将 boot 分区临时设置为 root 目录
1
| grub> set root=hd0,msdos2
|
加载内核
xxxx
为内核版本号,tab 补全即可。如果系统分区为 lvm
,那么默认应该是 /dev/mapper/rhel-root
,CentOS 应该为 /dev/mapper/centos-root
,根据自己的实际情况调整,如果是非lvm
文件系统,那么则需要填写实际的 label,例如 /dev/sda1
1 2
| grub> linux16 /vmlinuz-xxxx.e17.x86_64 root=/dev/mapper/rhel-root grub> initrad16 /initramfs-xxxx.e17.x86_64.img
|
启动系统
重建 grub 配置文件
1
| grub2-mkconfig -o /boot/grub2/grub.cfg
|