featured-image

Centos引导(Grub)修复实记

今天早上遇到客户报障,业务异常,接显示器查看服务器一堆报错,尝试按Ctrl+Alt+Del重启无响应,按电源按钮关机无反应。
只能强制关机,重启后在加载内核列表之前一直光标闪烁等了很久,选择完内核启动后,一直卡在光标闪烁,无法进入系统。

判断是强制关机导致的内核启动文件损坏或丢失、不全。

询问客户之前的Centos版本,得知是7.9,在CD挂载相同系统版本的安装镜像,开机进入安装镜像选择Troubleshooting后选择Rescue a Centos System进入救援模式

安装镜像选择Troubleshooting
安装镜像选择Troubleshooting

在这里插入图片描述
选择Rescue a Centos System进入救援模式
在这里插入图片描述
遇到模式选择时,输入1选择Continue后回车进入救援系统

chroot /mnt/sysimage/ #将修改根目录挂载

在这里插入图片描述
chroot /mnt/sysimage/ #将修改根目录挂载

首先卸载boot分区,并用xfs_repair命令检查修复完整性,xfs_repair -n为只检测不修复

umount /boot/efi   #卸载/boot/efi目录
umount /boot    #卸载/boot目录
xfs_repair -n /boot/efi    #文件检查目录

我检测完报错,提示无法确定/boot目录分区大小

于是打算重新生成一个boot引导
重新生成boot可以直接生成,或者是重新安装内核生成
首先fdisk -l确定下硬盘所在设备,这里以sda为例

直接生成boot引导

grub2-install /dev/sda    #安装grub引导到sda
grub2-mkconfig -o /boot/grub2/grub.cfg   #重新生成grub引导配置文件

重新安装内核最好是和原系统同版本的内核,所以才要挂载原系统的安装镜像,因为镜像内内核文件版本和原系统内核版本一致。
首先需要先把cd设备挂载一个目录,然后加载目录下的内核

mount /dev/cdrom /mnt/  #挂载cdrom设备到mnt目录
rpm -ivh /mnt/Packages/kernel-3.10.0-957.el7.x86_64.rpm --force   #安装内核文件
grub2-install /dev/sda  #安装grub引导到sda
grub2-mkconfig -o /boot/grub2/grub.cfg    #重新生成grub引导配置文件

最后执行sync写入硬盘,两次exit退出即可

Copyright © 2014 - 2021 創雲信息科技(國際)電信集團 All Rights Reserved