CentOS7下重建grub并恢复系统的故障案例

简介: CentOS7下重建grub并恢复系统的故障案例

CentOS7下重建grub恢复系统的故障案例


640.jpg

grub无法启动的故障现象


下面先模拟还原一下故障现象

1、模拟/boot/分区损坏,整个boot分区下文件删掉,当然/boot/grub2/grub.cfg文件也会被删掉

lsblk查看可以看到/boot为单独分区


lsblk
cd /boot/
rm -rf *

640.jpg

640.jpg


2、同时也模拟/etc/fstab文件丢失,删掉/etc/fstab


rm -rf /etc/fstab

640.jpg

3、重启服务器后系统无法启动,卡在grub界面


640.jpg


故障恢复思路


工具:使用ISO镜像光驱启动进入救援模式,进行恢复

1、/etc/fstab文件丢失会导致无法自动挂载分区,所以需要手动挂载

如果使用了LVM逻辑卷在挂载之前还要先加载逻辑卷 需要手动恢复/etc/fstab,写入开机启动需要挂载的分区条目

2、重建/boot目录下系统内核文件

3、重建/boot/grub2/grub.cfg

4、重启服务器后验证是否恢复成功


具体操作步骤


1、使用CentOS7的原版镜像开机从光驱启动


当然你也可以做成启动U盘,从U盘启动


640.jpg


640.jpg

2、选择Troubleshooting->Rescue a CentOS system


640.jpg

640.jpg

3、根据提示先选择1

640.jpg


提示没有找到任何Linux分区,这时会进入shell


4、发现LVM逻辑卷


lsblk
lsblk -f


可以看到/dev/sda2为LVM2_member


/*扫描vg卷*/
vgscan
/*激活vg*/
vgchange -ay


640.jpg

5、挂载故障根分区到/mnt/sysimage


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


640.jpg640.jpg


保存后reboot重启


6、重复第1,2,3步,重新进到Rescue模式


这时选择1,就可以找到分区了 可以看到提示你的系统已经mounted under /mnt/sysimage 输入回车进到shell

640.jpg


lsblk可以看到/mnt/sysimage 和/mnt/sysimage/boot已经挂载上了(见下面第7步中的截图)


7、安装内核


rpm -ivh /run/install/repo/Packages/kernel-3.10.0-1160.el7.x86_64.rpm --root=/mnt/sysimage --force


640.jpg


8、重建grub.cfg


chroot /mnt/sysimage
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit


退出实根后重启服务器 reboot


640.jpg


9、这时验证是否修复成功


可以看到内核菜单已经正常显示

640.jpg

第二次自动重启后,系统正常进行登录界面


640.jpg

640.jpg

系统恢复成功


下图为CentOS7启动原理流程图

640.jpg


相关文章
|
2月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
405 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
1月前
|
Linux 开发工具 Windows
CentOS8 64位系统 搭建内网穿透frp
【10月更文挑战第23天】本文介绍了如何在Linux系统上搭建frp内网穿透服务,并配置Windows客户端进行访问。首先,通过系统信息检查和软件下载,完成frp服务端的安装与配置。接着,在Windows客户端下载并配置frpc,实现通过域名访问内网地址。最后,通过创建systemd服务,实现frp服务的开机自动启动。
79 14
|
3月前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
295 80
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
107 1
Linux系统之Centos7安装cockpit图形管理界面
|
1月前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
52 2
|
1月前
|
存储 监控 Linux
在 CentOS 7 中如何对未分配的大容量硬盘进行分区和挂载。通过具体案例,详细说明了使用 `fdisk` 创建分区、格式化分区、创建挂载点以及临时和永久挂载分区的步骤
本文介绍了在 CentOS 7 中如何对未分配的大容量硬盘进行分区和挂载。通过具体案例,详细说明了使用 `fdisk` 创建分区、格式化分区、创建挂载点以及临时和永久挂载分区的步骤。此外,还分享了一些实践经验,帮助读者更好地管理和优化磁盘空间。
87 8
|
5月前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
3月前
|
网络协议 Linux Shell
CentOS7系统命令学习笔记(一)
CentOS7系统命令学习笔记(一)
100 12
|
3月前
|
Linux
CentOS7系统命令学习笔记(二)
CentOS7系统命令学习笔记(二)
67 10
|
3月前
|
Linux Shell API
CentOS7系统命令学习笔记(三)
CentOS7系统命令学习笔记(三)
64 8