Centos之boot-loader恢复攻略!

前端之家收集整理的这篇文章主要介绍了Centos之boot-loader恢复攻略!前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Boot loader是计算机操作系统开机启动的引导文件,一旦boot loader出了问题,则计算机就无法正常启动,这时候,大家可能都会选择重装系统来解决问题,但是对于Centos这种用于服务器的操作系统来说,可不是说能够随随便便就可以重新装一次系统的,接下来,小编带你来看看Centos中的几种恢复bootloader方法。(本次实验我们以Centos 6版本为例)

这篇文章主要在于介绍恢复boot loader方法,就不在详细介绍mbr的分区结构,以及boot loader在系统启动中的重要位置了。如有疑问,可以参考以下链接

磁盘分区中的MBR:http://www.jb51.cc/article/p-nftyvqfn-bnx.html

两种恢复方法

1、从提前备份的mbr文件中,使用dd命令将boot loader恢复。

2、使用grub-install工具进行修复。


下面就行实验详细介绍:

方法一、使用dd命令将备份的boot loader恢复。

当然,如果你来看着篇文章,可能你想必是没有进行备份,但是,还请允许我介绍一下这方法,以便你在今后的操作中能够及时备份,并且能通过这个方法轻松恢复。

在开始之前,我们先来备份一下MBR中的BootLoaderboot loader存在于磁盘首部的446字节中,所以我们可以只备份这446个字节,如果你想将整个MBR全部备份下来,那更好,将分区表也备份下来了,不过这里我们只备份前446字节:

wKiom1m-iHPz7o5wAAAZDyc3IJo518.png

我们接下来就行boot loader破坏,不过大家生产环境中可不要这么做,这里的破坏只是为了试验用,请大家不要随便模仿。备份的文件千万不要还放在本地计算机上,如果一旦启动不了,我们还怎么通过备份恢复,当然,尽管方法是有,但是还是建议不要讲备份放在本地计算机。我们就走一次逆行,将备份还放到本地计算机,来进行实验。(但是建议,大家还是把备份的文件放到远程计算机上)

破坏boot loader:dd if=/dev/zero of=/dev/sda bs=1 count=446

wKioL1m-iIGTI5TlAAA-oKC05ls681.png

Boot loader破坏后我们的系统再次启动就不能正确的找到内核的位置,也就起不来了,现象如下所示:

wKiom1m-iPeS7pUaAAAiAKVx-EE760.png

任何的操作都是需要进入系统中才可以进行,我们也可以将硬盘拆下来放到另一台计算机上进行修复。这里我们通过进入光盘系统的修复模式来进行。

我们需要将光盘挂载,并且确保光盘已经连接,如果是虚拟机的话,我们来进行查看确保。

wKioL1m-iN7yAzByAABt7YWAR04438.png

开机进入本机的BIOS界面,在启动项里找到CD/DVD选项,将开机启动项置为从光盘启动。如果是物理机的话需要找到物理机品牌进入BIOS的按钮,如果是虚拟机的话我们就选择在开机前,选择进入固件,如下图所示:

wKioL1m-iPDzJBooAABYIwJT9No679.png

wKiom1m-iTTh63eWAAA8NYkRL-o445.png

保存退出后,开机启动,这时候会进入,光盘引导界面,我们选择进入救援模式,一步一步跟着小编走:

wKioL1m-iSPCnh98AAcQhIUm1bo697.png

wKiom1m-iVOigtKrAAAQm4x42oA179.png

wKioL1m-iSPhCDYpAAAM4ZAA6tY583.png

wKiom1m-iVPy-KKJAAAVmd81oPk809.png

wKioL1m-iSTRRrByAAAmYOkoywE802.png

wKiom1m-iVOB7rirAAASOXImxs0335.png

wKioL1m-iSTjfQdxAAAHV9tDV6w130.png

wKiom1m-iVSjRfsjAAAMo7jZNIc507.png

wKioL1m-iSTi-H4vAAADhsRz1pM805.png

进行到上图所示,我们已经成功的进入了救援模式,进入到了光盘系统的根目录,并且获得了shell命令提示符。

进入后,我们需要切根,就是运行chroot /mnt/sysimage/这条命令,因为就如救援模式后,我们其实是在光盘系统的根目录,而我们本地的系统根目录是被默认挂载到了/mnt/sysimage/目录下,所以我们需要进入本地根目录更方便的操作。

如图运行:chroot /mnt/sysimage/ 虽然没有任何的提示,但我们已经换了一片天了。

wKioL1m-ibGCPN7LAAAX337rHJo291.png

这个时候我们可以进行恢复了,小编在刚才的备份中,悄悄将备份的文件放到了/tmp目录下,我们使用dd命令将boot loader恢复到/dev/sda中,一般如果我们不做特别的修改,默认的MBR是在/dev/sda磁盘下的。

wKiom1m-if3RDrVjAAA-oKC05ls809.png


wKioL1m-ieHSU2cvAAAYwveVLCg145.png

wKiom1m-iibTzgThAABvRX8mdZ4339.png

好了这个时候多执行几次sync这个命令确保写入完成。我们就可以退出本地根进行重启了。(注意:使用exit退出本地根,再进行重启。)

方法二、使用grub-install工具进行神修复

使用第二种方法与第一种方法是有一定得区别,但是还是有一些相似的。如果你在没有重启系统的情况下,发现系统的boot loader破坏了,可以直接在本地安装grub-install工具(安装命令:yum install grub-install,执行grub-install /dev/sda进行恢复。

除了上述的你自己发现的情况下不能正常启动了,我们还是得进入救援模式进行恢复,这种方法就不适用于将磁盘插到别的计算机上进行恢复了。

进入救援模式的方法还跟方法一的操作一样,请小伙伴们去参考方法一种进入救援模式的方法,这里小编就不��嗦了。进入救援模式后,我们必须要切根,所以为什么方法一中小编执意让大家切根,虽然方法一不进行切根也能完成,但是,养成进救援模式就切根的好习惯是没有错的。如果不切根这个命令是没有办法执行的。

wKiom1m-ilWD_HhSAAAX337rHJo256.png

查看损坏的boot loader:

wKioL1m-ikewADQvAAA-oKC05ls493.png

执行:grub-install /dev/sda 稍等片刻就好。

wKiom1m-ipPypay1AAAbyhD7QcY499.png


再次查看被破坏的bootloader已经成功修复。

wKiom1m-ir7DIW3WAABvRX8mdZ4641.png

同样exit退出reboot重启,恢复完成!

wKioL1m-iqDCvo5HAAATEeCikEU834.png

成功启动展示:

wKioL1m-irvA_10HAABw6oVEI50223.png

知识小扩展grub-install 这个命令不仅仅可以修复被破坏的boot loader,还强大到可以修复/boot/grub/目录下被破坏的启动重要文件,这些重要文件是开机启动过程中引导启动阶段1阶段1.5和阶段2的相关配置文件。有兴趣的同学可以进行实验验证一下,但是!特别声明,该命令不能回复/boot/grub/grub.conf和以.xmp.gz结尾的文件

猜你在找的CentOS相关文章