今天早上遇到客户报障,业务异常,接显示器查看服务器一堆报错,尝试按Ctrl+Alt+Del重启无响应,按电源按钮关机无反应。
只能强制关机,重启后在加载内核列表之前一直光标闪烁等了很久,选择完内核启动后,一直卡在光标闪烁,无法进入系统。
判断是强制关机导致的内核启动文件损坏或丢失、不全。
询问客户之前的Centos版本,得知是7.9,在CD挂载相同系统版本的安装镜像,开机进入安装镜像选择Troubleshooting后选择Rescue a Centos System进入救援模式
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退出即可