设为首页 收藏本站
查看: 1190|回复: 0

[经验分享] Centos之boot

[复制链接]

尚未签到

发表于 2018-4-21 09:50:46 | 显示全部楼层 |阅读模式
Boot loader是计算机操作系统开机启动的引导文件,一旦boot loader出了问题,则计算机就无法正常启动,这时候,大家可能都会选择重装系统来解决问题,但是对于Centos这种用于服务器的操作系统来说,可不是说能够随随便便就可以重新装一次系统的,接下来,小编带你来看看Centos中的几种恢复boot loader的方法。(本次实验我们以Centos 6版本为例)
这篇文章主要在于介绍恢复boot loader的方法,就不在详细介绍mbr的分区结构,以及boot loader在系统启动中的重要位置了。如有疑问,可以参考以下链接。
磁盘分区中的MBR: http://jk6627.blog.51cto.com/12002684/1957816
两种恢复方法:
1、从提前备份的mbr文件中,使用dd命令将boot loader恢复。
2、使用grub-install工具进行修复。


下面就行实验详细介绍:
方法一、使用dd命令将备份的boot loader恢复。
当然,如果你来看着篇文章,可能你想必是没有进行备份,但是,还请允许我介绍一下这方法,以便你在今后的操作中能够及时备份,并且能通过这个方法轻松恢复。
在开始之前,我们先来备份一下MBR中的BootLoader,boot loader存在于磁盘首部的446字节中,所以我们可以只备份这446个字节,如果你想将整个MBR全部备份下来,那更好,将分区表也备份下来了,不过这里我们只备份前446字节:
DSC0000.png

我们接下来就行boot loader破坏,不过大家生产环境中可不要这么做,这里的破坏只是为了试验用,请大家不要随便模仿。备份的文件千万不要还放在本地计算机上,如果一旦启动不了,我们还怎么通过备份恢复,当然,尽管方法是有,但是还是建议不要讲备份放在本地计算机。我们就走一次逆行,将备份还放到本地计算机,来进行实验。(但是建议,大家还是把备份的文件放到远程计算机上)
破坏boot loader:dd if=/dev/zero of=/dev/sda bs=1 count=446
DSC0001.png
Boot loader破坏后我们的系统再次启动就不能正确的找到内核的位置,也就起不来了,现象如下所示:
DSC0002.png
任何的操作都是需要进入系统中才可以进行,我们也可以将硬盘拆下来放到另一台计算机上进行修复。这里我们通过进入光盘系统的修复模式来进行。
我们需要将光盘挂载,并且确保光盘已经连接,如果是虚拟机的话,我们来进行查看确保。
DSC0003.png

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

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

DSC0007.png

DSC0008.png

DSC0009.png

DSC00010.png

DSC00011.png

DSC00012.png

DSC00013.png

DSC00014.png

进行到上图所示,我们已经成功的进入了救援模式,进入到了光盘系统的根目录,并且获得了shell命令提示符。
进入后,我们需要切根,就是运行chroot /mnt/sysimage/这条命令,因为就如救援模式后,我们其实是在光盘系统的根目录,而我们本地的系统根目录是被默认挂载到了/mnt/sysimage/目录下,所以我们需要进入本地根目录更方便的操作。
如图运行:chroot /mnt/sysimage/ 虽然没有任何的提示,但我们已经换了一片天了。
DSC00015.png
这个时候我们可以进行恢复了,小编在刚才的备份中,悄悄将备份的文件放到了/tmp目录下,我们使用dd命令将boot loader恢复到/dev/sda中,一般如果我们不做特别的修改,默认的MBR是在/dev/sda磁盘下的。
DSC00016.png


DSC00017.png

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

方法二、使用grub-install工具进行神修复
使用第二种方法与第一种方法是有一定得区别,但是还是有一些相似的。如果你在没有重启系统的情况下,发现系统的boot loader破坏了,可以直接在本地安装grub-install工具(安装命令:yum install grub-install),执行grub-install /dev/sda进行恢复。
除了上述的你自己发现的情况下不能正常启动了,我们还是得进入救援模式进行恢复,这种方法就不适用于将磁盘插到别的计算机上进行恢复了。
进入救援模式的方法还跟方法一的操作一样,请小伙伴们去参考方法一种进入救援模式的方法,这里小编就不啰嗦了。进入救援模式后,我们必须要切根,所以为什么方法一中小编执意让大家切根,虽然方法一不进行切根也能完成,但是,养成进救援模式就切根的好习惯是没有错的。如果不切根这个命令是没有办法执行的。
DSC00019.png
查看损坏的boot loader:
DSC00020.png
执行:grub-install /dev/sda  稍等片刻就好。
DSC00021.png


再次查看被破坏的bootloader 已经成功修复。
DSC00022.png
同样exit退出,reboot重启,恢复完成!
DSC00023.png
成功启动展示:
DSC00024.png
知识小扩展grub-install 这个命令不仅仅可以修复被破坏的boot loader,还强大到可以修复/boot/grub/目录下被破坏的启动重要文件,这些重要文件是开机启动过程中引导启动阶段1、阶段1.5、和阶段2的相关配置文件。有兴趣的同学可以进行实验验证一下,但是!特别声明,该命令不能回复/boot/grub/grub.conf和以.xmp.gz结尾的文件。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449901-1-1.html 上篇帖子: CentOS下JDK安装和配置 下篇帖子: PXE安装CentOS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表