前言

前文中我们熟悉了linux的启动流程,如果在启动过程中文件丢失或者损坏了怎么办呢?难道只有重装系统这一条路吗?那我们不是成了普通网管了吗?作为专业的运维工程师,我们需要掌握如何快速修复系统启动。


实验1: 破坏/boot/grup/下的文件——-stage2 阶段  不影响启动 

    mv /boot/grub  /app———-移走左右文件保留grub.conf


实验2:破坏/dev/sda 前446字节,和启动相关

    查看MBR 

wKiom1m43JXDlUcMAABvrKPnD2U053.png

    破坏grub的第一阶段 stage1

wKioL1m43GzxabWPAABbRUW2BIg836.png

重启后系统会自动直接进光盘界面,进入救援模式切根:chroot /mnt/sysp_w_picpath

安装grub:grub-install/dev/sda—–不止修复stage1 1.5、2统统修复。(第一种方法)


实验3:破坏mbr后续的数据——-stage1.5 

wKioL1m43GzDJc8SAACiF4Azffk301.png

用光盘引导,切根(第二种方法恢复)

1、/mnt/sysp_w_picpath

2、grub

3、root (hd0,0)

4、setup (hd0)——依赖于/boot/grub/下的文件

这个时候重复实验1这时候已经起不来了,重新安装grub后第二阶段和刚开始的已经不是同一个文件了。

这时候还需要保留stage2这个文件 就可以启动了

wKiom1m43JXQQW9MAABH_TA3zi0054.png

实验4:制作启动项/etc/grub.conf -> ../boot/grub/grub.conf

centos6启动故障及修复_第1张图片

1、default=0 
代表默认选择第一个

2、红色边框为复制添加部分

3、可以在title前或者initrd后面加入口令,可以加密 

wKiom1m43JaRQqTOAABxD_vCTxw505.png

生成方法:

wKiom1m43JeQu_QaAAAcikE-Uu0274.png

加密算法2:ssha512算法 更安全

wKioL1m43G7go8yiAABO1sJPRoE641.png

4、内核参数 /proc/cmdline,可进行修改

quiet是隐藏内核的启动过程,删除可以看到内核过程


实验5:删除/boot/grub/grub.conf,修复 

注意:必须事先知道root在哪,支持tab健补全。

实验6:删除/boot/grub目录

报错信息 

centos6启动故障及修复_第2张图片

进入光盘救援模式:     1、chroot  /mnt/sysp_w_picpath

                                 2、grub-install /dev/sda

                                  3、sync

                                  4、手动写一个grub.conf文件 

centos6启动故障及修复_第3张图片

实验7:删除/boot   
包含内核文件vmlinuz、虚拟文件系统 inittrd、grub

重启错误信息 

centos6启动故障及修复_第4张图片

1、进入光盘模式

chroot
/mnt/sysp_w_picpath

mount
/dev/sr0 /mnt

2、恢复vmlinuz文件——–光盘复制内核包   在光盘中isolinux文件夹中,不在packages中

(第二种方法rpm -ivh /mnt/packages/kernel… –force—————-安装内核包)

3、恢复initramfs   

mkinitrd /boot/initramfs.img `uname -r`

4、恢复grub—————grub-install /dev/sda

5、编辑grub.conf 

实验8:删除/sbin/init

1、看到这个界面输入a 

2、添加init=/bin/bash  指定系统不用默认的init启动  指定bash启动

3、查询到文件来自于的包组

4、试图创建发现是只读,也无法挂载光盘,需要重新挂载根

重新挂载根

挂载光盘

5、安装包

综合实验9:删除/etc/fstab和/boot  两个文件 恢复

1、进入光盘救援模式

这个时候光盘也无法挂载根,找不到分区 

 

wKioL1m43HHxkYjMAABGGA2Msuw569.png

2、使用fdisk -l /dev/sda  、blkid 可以看到磁盘信息

centos6启动故障及修复_第5张图片

3、创建文件,然后每个分区试图挂载,找到根和boot

4、创建创建文件,不支持vim,写完退出重启一下 重新进救援模式,实现自动挂载,不要手动挂载 

wKioL1m43HGiYJm0AAAXgF13cXE867.png

wKiom1m43JqD2PSfAAAj9L97gUk328.png

5、直接安装内核包

centos6启动故障及修复_第6张图片

6、安装grub

grub-install /dev/sda

编辑grub.conf文件

wKiom1m43JuzvIp6AAA3kNxWP-Y727.png

技巧:可是要vim直接读入名字,无需手写”r!”

总结:通过以上实验,对基本的故障都能恢复,结合启动过程,对linux应该会有一个更深层次的了解。