灾难恢复-boot分区的恢复方法

简介: boot分区是系统启动中最重要的部分,如果服务器由于病毒攻击又或者被管理员误删除了boot分区。那么就会存在潜在的风险。为什么说是潜在的风险?因为boot分区被删除后系统仍在继续运行,看似无状况但是在执行关机操作后就会无法启动。

img_5b7642b782eefc4bf667734a0c991c85.png

boot分区是系统启动中最重要的部分,如果服务器由于病毒攻击又或者被管理员误删除了boot分区。那么就会存在潜在的风险。为什么说是潜在的风险?因为boot分区被删除后系统仍在继续运行,看似无状况但是在执行关机操作后就会无法启动。

大致步骤

1.挂载CentOS系统镜像
2.进入救援模式
3.修复fstab文件
4.再次进入救援模式
5.从新安装内核文件
6.安装grub
7.手动修复grub
8.重启进入系统

恢复过程

1.首先查看系统的磁盘情况,根目录在逻辑卷,boot分区为普通文件系统。注:boot分区只能在基本文件系统。
然后将fstab文件移出,将boot分区下所有文件删除,模拟系统出现故障。确认boot分区下没有任何文件。

img_0d92c8ee8c921560cd85524619da1cd2.png

2.重新启动操作系统会出现如下图所示,为什么这个磁盘设备连boot分区都没了系统还将这个设备当做启动设备呢?那是因为BIOS根据设定好的顺序寻找第一个有MBR信息的磁盘设备,只要有MBR信息不论能不能启动都会把这个设备当做启动设备。如图所示即/boot分区与fstab文件全部丢失的情况

img_fb606c83f6c62796c424b383ea31a47a.png

3.再重新启动,设定bios优先从光盘启动,然后选择第三个,进入救援模式
img_9fb84a96e44026d30e385b490289bd34.png

4.一路回车一路yes,直到下图所示选择no不开启网络功能,因为这次主要演示从光盘的救援模式修复,所以没有必要启动网络服务。如果当前环境下没有光驱,那么可以开启网络服务进行修复,网络修复等下次再演示。

img_31e86be0fb5b4cd3850b6f8fffd1a011.png

5.救援系统启动后有一个任务就是将你原操作系统的根挂在到救援系统中/mnt/sysimage。由于fstab文件也被我删除了,所以救援系统无法找到原系统的磁盘路径,也就谈不上挂载原系统的根了,所以首要任务就是先修复/etc/fstab文件。
img_e4d456a7f543c6faf5461e182cf19952.png

6.使用blkid命令查看当前系统中的设备信息,发现只有2个分区。一个为ext4格式,一个为逻辑卷格式。我这里搭建的环境比较简单如果在生产中应该会有多个分区。从图上新信息分析出/dev/sda1为boot分区,/dev/sda2卷组。
img_ec083fb6438b0e5bc8dd3bb899399e92.png

7.既然知道根分区在在逻辑卷中,那么使用lvdispaly命令查看逻辑卷分区。黄色框中说明逻辑卷是非激活状态。
img_0c2d17a0c589c5844239b24056f96fca.png

8.lvsacn查看逻辑卷的状态,此时显示为非激活状态。vgchange -ay激活所有逻辑卷。lvscan再次查看逻辑卷状态,对比第一次已经从inactive变为active(激活)
img_dbb8ffaabf445849895acd620bc987c3.png

9.再使用blkid命令查看设备信息,发现多了2个设备信息,这就是逻激活逻辑卷后显示出来的。如果分区多的话那就通过手动逐一挂载后进到分区中去,查看分区中的各目录分析各分区的作用。在这里很容易分辨出一个是root分区一个是swap分区。

img_4c0c1cc1cb9103c0d27968b9c6f406b6.png

10.创建挂载点,将root分区挂载至挂载点

img_eb6a2817cbe9882d309e53c888736056.png

11.手动创建fstab文件,按照fstab文件的格式填写相应的分区信息
img_ea93037d4c16e0d39de106ab38472a36.png

img_c69e7c75fc6e3df6385caa389c5c1cea.png

12.重新启动后再次进入救援模式,救援模式会提示将原操作系统的根挂载到/mnt/sysimage,此时标志着/etc/fstab文件已经修复完成

img_384eb5d799554886d433b25e4e1c7b28.png

13.进入救援模式,首先要切根,然后挂在光盘,安装kernel文件
img_ce65fad35bf31f1baaa0e6eecf61b304.png

14.查看boot分区,目录内出现一堆文件,包括内和文件与伪根文件系统表明kernel安装完成
img_dceb524f5aaac27929014d9e3fdbdd0a.png

15.安装grub,安装时指定磁盘设备,而不是分区。然后sync同步分区一定要多同步几次。

img_88a8ac9fa1642b0215fdaf5906ca23ca.png

16.再次查看boo分区,如果出现grub目录,就表示grub已经安装完成。

img_9eaae6c8130de7b106aef5b1894dce6d.png

17.手动创建grub,红色框中为设定根目录,一定要写根分区而不是磁盘。

Paste_Image.png

18.再次开机出现grub界面,按下回车系统正常启动!

img_b1d1b87422f3002b73a8e48bba75a6c5.png

目录
相关文章
9kr
|
应用服务中间件 网络安全 nginx
通过宝塔Nginx反代HomeAssistant并添加SSL实现隐藏端口号与域名访问
HomeAssistant默认使用8123端口,带端口访问既不美观也不方便。 通过宝塔Nginx默认反代配置会出现各种意外错误,本文将通过修改HomeAssistant与反代配置解决该问题。
9kr
5022 1
通过宝塔Nginx反代HomeAssistant并添加SSL实现隐藏端口号与域名访问
|
Linux
centos7 如何处理 libQt5Widgets.so.5 问题
今天一同事发过来一个报错信息,提示如下:error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory查了几个博客分享...
5709 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
256634 0
|
6月前
|
机器学习/深度学习 传感器 自然语言处理
基于Transformer架构的时间序列数据去噪技术研究
本文介绍了一种基于Transformer架构的时间序列去噪模型。通过生成合成数据训练,模型在不同噪声条件下展现出强去噪能力。文章详细解析了Transformer的输入嵌入、位置编码、自注意力机制及前馈网络等关键组件,并分析实验结果与注意力权重分布。研究为特定任务的模型优化和专业去噪模型开发奠定了基础。
381 14
基于Transformer架构的时间序列数据去噪技术研究
|
9月前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
2058 87
|
12月前
|
编解码 中间件 API
API实现跨平台访问的方式
【10月更文挑战第16天】API实现跨平台访问的方式
195 2
|
小程序 前端开发
微信小程序中 vant weapp 使用外部的icon作为图标的步骤
本文介绍了在微信小程序中使用Vant Weapp组件库时,如何将外部的icon作为图标引入的步骤。包括在项目中创建静态资源文件夹、在iconfont官网添加图标并生成在线链接、下载iconfont代码并解压到小程序目录中、修改iconfont.wxss文件将本地链接替换为在线链接、在全局样式文件中引入iconfont.wxss样式,以及在页面中使用图标的方法。
微信小程序中 vant weapp 使用外部的icon作为图标的步骤
|
Java Maven 开发工具
【IntelliJ IDEA】idea修改设置默认maven,解决每次新建和导入项目都需要重新配置maven
【IntelliJ IDEA】idea修改设置默认maven,解决每次新建和导入项目都需要重新配置maven
9514 1
|
存储 缓存 安全
systemd-ask-password:Linux中的安全密码获取工具
`systemd-ask-password`是Linux的密码获取工具,安全收集服务或应用所需的密码。它支持TTY和密码代理输入,有隐藏输入、密码缓存功能。参数如`--no-tty`、`--id`、`--timeout`等可定制交互方式。示例包括直接在TTY请求或通过代理。注意事项包括安全环境、权限管理和密码管理。最佳实践涉及定期更新和使用强密码,以及日志审计。