CentOS7下重建grub恢复系统的故障案例
下面先模拟还原一下故障现象
1、模拟/boot/分区损坏,整个boot分区下文件删掉,当然/boot/grub2/grub.cfg文件也会被删掉
lsblk查看可以看到/boot为单独分区
lsblk
cd /boot/
rm -rf *
(图片可放大查看)
(图片可放大查看)
2、同时也模拟/etc/fstab文件丢失,删掉/etc/fstab
rm -rf /etc/fstab
(图片可放大查看)
3、重启服务器后系统无法启动,卡在grub界面
(图片可放大查看)
工具:使用ISO镜像光驱启动进入救援模式,进行恢复
1、/etc/fstab文件丢失会导致无法自动挂载分区,所以需要手动挂载
如果使用了LVM逻辑卷在挂载之前还要先加载逻辑卷 需要手动恢复/etc/fstab,写入开机启动需要挂载的分区条目
2、重建/boot目录下系统内核文件
3、重建/boot/grub2/grub.cfg
4、重启服务器后验证是否恢复成功
当然你也可以做成启动U盘,从U盘启动
(图片可放大查看)
(图片可放大查看)
(图片可放大查看)
(图片可放大查看)
(图片可放大查看)
提示没有找到任何Linux分区,这时会进入shell
lsblk
lsblk -f
可以看到/dev/sda2为LVM2_member
/*扫描vg卷*/
vgscan
/*激活vg*/
vgchange -ay
(图片可放大查看)
mount -rw /dev/mapper/centos-root /mnt/sysimage
cd /mnt/sysimage
并vi etc/fstab文件
下面是根据lsblk -f 反推出来的/etc/fstab
/dev/mapper/centos-root / ext4 defaults 0 0
/dev/mapper/centos-opt /opt ext4 defaults 0 0
/dev/sda1 /boot ext4 defaults 0 0
(图片可放大查看)
保存后reboot重启
这时选择1,就可以找到分区了 可以看到提示你的系统已经mounted under /mnt/sysimage 输入回车进到shell
(图片可放大查看)
lsblk可以看到/mnt/sysimage 和/mnt/sysimage/boot已经挂载上了(见下面第7步中的截图)
rpm -ivh /run/install/repo/Packages/kernel-3.10.0-1160.el7.x86_64.rpm --root=/mnt/sysimage --force
(图片可放大查看)
chroot /mnt/sysimage
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
退出实根后重启服务器 reboot
(图片可放大查看)
可以看到内核菜单已经正常显示
(图片可放大查看)
第二次自动重启后,系统正常进行登录界面
(图片可放大查看)
系统恢复成功
(图片可放大查看)
下图为CentOS7启动原理流程图
本文分享自 WalkingCloud 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!