简述rhel7系统修复

情景一、 root权限下,rm -rf /boot/*  并且  dd  if=/dev/zero  of=/dev/sda  bs=446  count=1,删除/boot下的所有内容,并且向sda的第一个扇区写入446字节数据块,目前情况下系统是无法启动了,因为grub引导和系统内核都已经没了,下面来修复。

修复一: 

1、重启,并且设置从光驱启动(确保系统盘在光驱内),在菜单选择进入救援模式(rescue模式);

2、启动后会获得一个shell,这时候的 / 并不是原来系统的根,原来的根被临时挂载到了 /mnt/sysimage/目录下了;

3、 ls  /mnt/sysimage/ 可以看到原来系统根下面的文件,现在要做的就是重新挂载根,执行 chroot  /mnt/sysimage/;

4、根被挂载回来以后,需要做的就是修复grub引导以及/boot分区,首先挂载光驱 mount  /dev/sr0  /usr/src;

5、挂载好光驱以后,安装系统内核,rpm  -ivh  /usr/src/Packages/kernel-3.10.......rpm  --force;(不同版本内核版本号不同)

6、下面来修复grub,执行 grub2-install  /dev/sda ,将引导程序写入sda的第一个扇区;

7、最后生成grub.cfg配置文件,执行 grub2-mkconfig  -o  /dev/boot/grub2/grub.cfg ;

8、执行两次exit,系统会重新启动,到此,系统修复完成。


情景二、root权限下, 模拟 /etc/fstab  文件被移除,mv  /etc/fstab  /home 

修复二:

1、重启系统,在引导菜单第一个选项处按 “e” ;

2、找到系统内核参数的一行,(linux16开头的一行)在末尾处添加 “1”,(1代表进入单用户模式),按ctrl + x 继续;

3、进入单用户模式以后,默认当前  /   是以只读的方式挂载的,需要重新以读写方式挂载,mount   -o  remount,rw  / ;

4、恢复 /etc/fstab文件, mv  /home/fstab  /etc/fstab ,如果此文件已被彻底删除,可以重新编辑一份放到/etc/下;

5、重启,修复完成。


情景三、root权限下,模拟mv  /etc/fstab  /home  , rm  -rf  /boot/*  ,dd  if=/dev/zero  of=/dev/sda  bs=446  count=1 ,更暴力一点~

修复三:

1、重启,同情景一,进rescue救援模式;

2、进来的时候系统有提示说:已经将以前的根临时挂载到了/mnt/sysimage/下,但是,查看 ls  /mnt/sysimage/ ,什么也没有;

3、这个时候因为fstab也被移除了,所以根分区所在的设备文件没有被挂载,chroot  /mnt/sysimage/ 报错,说找不到/bin/bash;

4、fdisk  -l  查看一下哪个设备文件名是以前的根分区? 我这里假设是/dev/sda3;

5、那么就临时挂载/dev/sda3,mkdir  /test  , echo  /dev/sda3  /test  xfs  rw  0  0  >>  /etc/fstab ;

6、mount  -a  发现没报错!挂载成功了,ls  /test  , 原来根下面的文件现在全在这里了;

7、赶紧把fstab恢复了,后面才好干活!    mv   /test/home/fstab   /test/etc/fstab  (现在的/test目录就临时充当了原来的 / );

8、exit重启,仍然进rescue模式,进来以后再看 /mnt/sysimage/目录,什么都有了,chroot  /mnt/sysimage/  重新挂载根;

9、挂载光驱,mount  /dev/sr0  /usr/src , 安装内核, rpm  -ivh  /usr/src/Packages/kernel-3.10.....rpm  --force ;

10、恢复grub引导  grub2-install  /dev/sda ; 

11、生成grub.cfg配置文件  grub2-mkconfig  -o  /boot/grub2/grub.cfg ;

12、exit重启,到此,系统恢复完成。

你可能感兴趣的:(简述rhel7系统修复)