boot分区是系统启动中最重要的部分,如果服务器由于病毒攻击又或者被管理员误删除了boot分区。那么就会存在潜在的风险。为什么说是潜在的风险?因为boot分区被删除后系统仍在继续运行,看似无状况但是在执行关机操作后就会无法启动。
大致步骤
1.挂载CentOS系统镜像
2.进入救援模式
3.修复fstab文件
4.再次进入救援模式
5.从新安装内核文件
6.安装grub
7.手动修复grub
8.重启进入系统
恢复过程
1.首先查看系统的磁盘情况,根目录在逻辑卷,boot分区为普通文件系统。注:boot分区只能在基本文件系统。
然后将fstab文件移出,将boot分区下所有文件删除,模拟系统出现故障。确认boot分区下没有任何文件。
2.重新启动操作系统会出现如下图所示,为什么这个磁盘设备连boot分区都没了系统还将这个设备当做启动设备呢?那是因为BIOS根据设定好的顺序寻找第一个有MBR信息的磁盘设备,只要有MBR信息不论能不能启动都会把这个设备当做启动设备。如图所示即/boot分区与fstab文件全部丢失的情况
3.再重新启动,设定bios优先从光盘启动,然后选择第三个,进入救援模式
4.一路回车一路yes,直到下图所示选择no不开启网络功能,因为这次主要演示从光盘的救援模式修复,所以没有必要启动网络服务。如果当前环境下没有光驱,那么可以开启网络服务进行修复,网络修复等下次再演示。
5.救援系统启动后有一个任务就是将你原操作系统的根挂在到救援系统中/mnt/sysimage。由于fstab文件也被我删除了,所以救援系统无法找到原系统的磁盘路径,也就谈不上挂载原系统的根了,所以首要任务就是先修复/etc/fstab文件。
6.使用blkid
命令查看当前系统中的设备信息,发现只有2个分区。一个为ext4格式,一个为逻辑卷格式。我这里搭建的环境比较简单如果在生产中应该会有多个分区。从图上新信息分析出/dev/sda1
为boot分区,/dev/sda2
卷组。
7.既然知道根分区在在逻辑卷中,那么使用lvdispaly
命令查看逻辑卷分区。黄色框中说明逻辑卷是非激活状态。
8.lvsacn
查看逻辑卷的状态,此时显示为非激活状态。vgchange -ay
激活所有逻辑卷。lvscan
再次查看逻辑卷状态,对比第一次已经从inactive变为active(激活)
9.再使用blkid
命令查看设备信息,发现多了2个设备信息,这就是逻激活逻辑卷后显示出来的。如果分区多的话那就通过手动逐一挂载后进到分区中去,查看分区中的各目录分析各分区的作用。在这里很容易分辨出一个是root分区一个是swap分区。
10.创建挂载点,将root分区挂载至挂载点
11.手动创建fstab文件,按照fstab文件的格式填写相应的分区信息
12.重新启动后再次进入救援模式,救援模式会提示将原操作系统的根挂载到/mnt/sysimage,此时标志着/etc/fstab文件已经修复完成
13.进入救援模式,首先要切根,然后挂在光盘,安装kernel文件
14.查看boot分区,目录内出现一堆文件,包括内和文件与伪根文件系统表明kernel安装完成
15.安装grub,安装时指定磁盘设备,而不是分区。然后sync同步分区一定要多同步几次。
16.再次查看boo分区,如果出现grub目录,就表示grub已经安装完成。
17.手动创建grub,红色框中为设定根目录,一定要写根分区而不是磁盘。
18.再次开机出现grub界面,按下回车系统正常启动!