CentOS6中的破坏性实验(伪根、内核、grub.conf、fstab文件误删恢复)

来源:互联网 发布:淘宝买翡翠是真的吗 编辑:程序博客网 时间:2024/06/05 11:53

破坏一:删除伪根文件!
这里写图片描述
破坏二:将默认的运行级别设置成6。(id:6:initdefault:)
结果:计算机陷入无限重启。
解决方法:可以进入救援模式,也可以运行单用户模式,这样只是临时,还需要更改文件的参数。
这里写图片描述
这里写图片描述
这里写图片描述
破坏三:由于开机时候某个服务出现故障,导致无法开机、或者开机出错?
结果:系统无法开机,或者开机很慢……
解决:有的服务在3、5模式下启动,但是在1、2、4的模式下并不启动,所以可以通过其他的运行级别来绕过有问题的服务,然后再查找问题,解决问题。当然,也可以通过救援模式来解决。
破坏四:破坏grub第一阶段:MBR(446字节)
结果:计算机会以为该硬盘没有安装操作系统,会进入光盘模式安装……
解决:如果有备份,可以通过备份文件还原。如果没有备份,可以找一个相近的机器还原。也可以进入光盘模式,执行切根操作后,使用grub-install、或者grub命令修复。注意:sync硬盘同步。
破坏五:将/boot/grub/grub.conf文件中,启动菜单中的initrd和kernal文件的位置调换一下?
结果:计算机无法开机,并且会提示,kenal文件必须被加载在initrd文件之前。
解决:切换启动菜单的时候,可以使用没有被修改的启动项;如果只有一个启动项,那么可以“e”手动更改启动菜单的内容;救援模式,应该也可以。
* 破坏六:将/boot/删掉?(rm -fr /boot/*)grub2、内核、伪根、grub.conf
结果:计算机无法开机,因为只破坏了grub2阶段,所以会提示“Error 15”。(我自己的实验,是进入grub,让手动编辑grub启动项。原因是,做实验的时候,没有执行sync命令,同步。)
解决:1 救援模式(进入光盘)
2 chroot /mnt/sysimages(切根)
3 mkinitrd /boot/initramfs-`uname-r`.img `uname -r` (恢复伪根文件)恢复伪根文件、以及内和文件可以使用拷贝、命令安装的方法;也可以使用安装内核文件的方法。
4 mount /dev/sr0 /mnt;cp /mnt/isolinux/vmlinuz /boot(恢复内核文件)
5 grub-install /dev/sda(恢复grub)
6 vim /boot/grub/grub.conf(恢复grub-conf文件)
default=0
timeout=5
title centos6.9
kernel /vmlinuz root=/dev/sda2(此root是操作系统的“根”如果是逻辑卷的话,就是“/”所在的那个逻辑卷。)
initrd /initramfs-2.6.32-696.el6.x86_64.img
注意:sync同步
这里写图片描述
这里写图片描述
* 破坏七:将/boot以及/etc/fstab删掉?(rm -fr /boot/*、rm -fr /etc/fstab)/etc/fstab、内核、伪根、grub2、grub.conf
结果:与破坏六的结果稍稍有些差别,进入光盘模式,不会自动挂载,无法挂载到/mnt/sysimages,需要先将/etc/fstab文件修复。
这里写图片描述
解决: 1、先要找到根分区,修复/etc/fstab文件
fdisk -l (查看硬盘的分区)
mount /dev/sda{1,2,…} /mnt/tmp
ls /mnt/tmp(寻找根分区、以及boot分区。寻找的方法就是一个一个的分区,挂载之后,查看分区中的内容)
mount /dev/sda2 /mnt/tmp(将根分区挂载到临时目录上)
vim /mnt/tmp/etc/fstab(修复/etc/fstab文件)
/dev/sda1 /boot ext4 defaults 0 0
/dev/sda2 / ext4 defaults 0 0
/dev/sda3 /app ext4 defaults 0 0
/dev/sda5 swap swap defaults 0 0
exit;exit,重新进入救援模式,挂载到/mnt/sysimages成功
2、mkdir /mnt/cdrom(修复伪根、内核文件,也可以使用重新安装内核的方法)
rpm -ivh /mnt/cdrom/Packages/kernel.xxx.rpm –root=/mnt/sysimages –force
3、chroot /mnt/sysimages(内核可以重装,但是grub目录是不能重装,只能使用命令生成。)
grub-install /dev/sda
4、vim /boot/grub/grub.conf(修复grub.conf文件)
default=0
timeout=5
title linux
kernel /vmlinuz-2.6.32-696.el6.x86_64 root=UUID=6da11b60-dd80-460a-a00f-beb8b3373b5c
initrd /initramfs-2.6.32-696.el6.x86_64.img
5、exit;exit
* 破坏八:逻辑卷将/boot以及/etc/fstab删掉?(rm -fr /boot/*、rm -fr /etc/fstab)vg需要手动激活/etc/fstab、内核、伪根、grub2、grub.conf
结果:lvm中的vg卷组处于禁用状态。因为此时的逻辑卷处于不可用状态,直接挂载,会提示没有文件系统。使用ls /dev/VolGroup/查看,会提示没有此文件或目录。因为在正常情况下,系统中会有一个脚本开机自动激活逻辑卷组的。但是因为现在机器使用光盘启动,属于开机不正常状态,所以卷组处于不可用状态。可以使用lvscan查看,逻辑卷是inherit状态。
解决:可以使用vgchange -ay激活卷组,后面的步骤,与破坏七类似。
破坏九:将/sbin/init程序移走?
结果:导致机器加载到init的时候,找不到第一个进程,也就导致启动不了第一个进程,也就无法开机。
解决:可以使用救援模式,也可以手动编辑grub,将init=/bin/bash,这样开机打开一个bash,然后寻找init文件。由于这个时候,”/”是以只读挂载的,不能移动文件。所以,需要重新挂载硬盘(mount -o remount,rw /),然后才可以将其移回到/sbin目录下。(内核参数中不指定init的路径的时候,默认就是在/sbin/init。)
如果init文件被删了,可以使用网络传一份儿。不过,因为此时并没有加载网络驱动,需要我们手动加载网络驱动(modprobe e1000),然后配置网卡,从相同的机器上使用scp复制。(该方法不可行,因为ssh服务现在还没启动。无法使用scp命令。不过可以使用U盘,加载U盘的启动模块,从U盘中拷一份儿。)
这里写图片描述
这里写图片描述
注意:遇到故障,先备份,将数据备份下来,然后再想办法恢复。

原创粉丝点击