boot 分区是系统启动中最重要的部分,如果服务器由于病毒攻击又或者被管理员误删除了 boot 分区。那么就会存在潜在的风险。为什么说是潜在的风险?因为 boot 分区被删除后系统仍在继续运行,看似无状况但是在执行关机操作后就会无法启动。正常情况下/boot 分区都是普通文件系统,ext3/ext4/xfs(安装操作系统的时候要注意这一点),其他分区为 lvm 逻辑分区,我们这里来模拟一下这个故障,手动删除/etc/fstab,/boot 目录! (no zuo no die!!! )
严重声明:禁止在生产环境操作,出现任何问题,和本人无关~
模拟故障场景
删除/etc/fstab、/boot 分区文件,然后重启服务器
重启后故障现象如下
恢复chroot
我们挂载 iso 镜像(插入系统光盘),进入到救援模式
由于我们把/etc/fstab 删除了,所以救援系统找不到原来系统的路径了,我们熟悉的 chroot /mnt/sysimage 选项提示不见了,所以我们要先恢复/etc/fstab 文件
恢复磁盘
查看磁盘信息
我们使用 blkid 命令,可以查看到磁盘信息,默认的/dev/sda1 为/boot 分区,看不到 lvm 逻辑卷的存在
激活逻辑卷
我们查看一下逻辑卷的状态,都是非激活状态的,我们手动激活一下
lvscan 查看逻辑卷的状态,此时显示为非激活状态。vgchange -ay 激活所有逻辑卷
再次查看 lvm 逻辑卷的状态,已经由 INACTIVE(非激活状态)变成 ACTIVE(激活状态)了。
恢复/etc/fstab 文件
再次 blkid 查看磁盘状态的时候,发现 swap 和/分区的逻辑卷已经出现了;新建一个/mnt/tmp 目录,将/分区挂载到/mnt/tmp 目录下,然后使用 blkid 命令将输出信息导入到/mnt/tmp/etc/fstab 文件中,然后进行编辑
编辑完成的内容如下
重启之后再次引导到救援模式
这里就可以看到提示,可以 chroot /mnt/sysimage 了,然后我们挂载一下 iso 光驱镜像文件,强行安装( 虽然我们把 /boot 目录下的文件删除了,但是系统里的 kernel 包是已经安装的状态,直接安装的话,会提示已经安装了,我们加一个 —force 参数,表示覆盖安装 )内核 kernel 文件,然后就可以看到/boot 目录下已经有文件产生了
恢复grub
我们在用之前学过的方法,恢复一下 grub.conf 文件就可以了。
可以正常启动到登录界面了,恢复完成!!!