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

[经验分享] CentOS启动故障排错

[复制链接]
YunVN网友  发表于 2019-2-16 13:27:53 |阅读模式
一.MBR破坏

centos 6
    通过dd破坏前512个字节,模拟mbr损坏。(事先要做好备份)

        dd if=/dev/zero of=/dev/sda bs=1 count=512

    查看破坏情况

        hexdump -C -n512 /dev/sda
    破坏前

  破坏后

  未重启的情况下,仅仅需要将备份的mbr重新读入即可

    dd if=/root/mbr of=/dev/sda bs=1 count=512
#if后是读取内容的文件或设备 of后是目标设备或者文件
#这里不再截图,读取后即可恢复正常
    重启后的现象(最好是挂载有镜像文件可以进入救援模式)
  硬盘无法引导

  解决方案
  进入救援模式(在品牌logo是按相应的键进入引导,这里使用vm的方法)
  1.在logo界面按ESC

      2.选择光盘引导

      3.选择救援模式启动

  .4.等待一段时间后进入如下页面

  5.一路回车,到网络配置选择no,挂载文件系统选择跳过,之后开启shell。



  6.查看磁盘发现,发现可以识别磁盘,但是无法识别分区
  7.这里我将mbr备份到了另一台同局域网的主机上,这里通过ifconfig配置ip,之后使用scp将备份取回

        ifconfig
ifconfig eth0 192.168.242.110
scp root@192.168.242.100:/root/mbr ./


  8.通过dd恢复mbr记录,之后重启,如果担心尚未写入可以使用sync命令去同步


            dd if=mbr of=/dev/sda bs=1 count=512

  重启后可以正常引导,同时查看mbr发现已经恢复


centos 7的恢复与6基本相同,仅仅是救援模式的界面略有差别,这里不过多重复书写

破坏grub第一阶段
    破坏前446个字节,模拟grub第一阶段的损坏

    dd if=/dev/zero of=/dev/sda bs=1 count=446
centos 6
  未重启
          法一:grub-install可以实现1 1.5 2的全步骤恢复

            grub-install /dev/sda

      法二:grub命令


            grub
root (hd0,0) 这里的root指的是/boot分区
setup (hd0) 写入到硬盘
quit

grub命令的修复依赖于/boot/grub下的文件,若这些文件被破坏则无法使用grub命令去修复

  重启(救援模式下)
          无法引导,现象如下

          1.进入救援模式
              这里进入和之前破坏mbr基本相同,但是在下图所示的地方要选择continue

          2.切换根目录

                    chroot /mnt/sysimage

      3.运行grub-install


        grub-install /dev/sda

          4.执行sync之后exit,reboot



centos7
    centos7使用的是grub2,取消了正常启动系统后,通过grub命令进入grub终端的方式,与6相比,7可以使用grub2-install命令进行修复,具体过程同6基本相近。

  重启后状态

  进入救援模式修复

  grub2-install后执行sync 退出根目录切换状态reboot,正常启动


破坏grub的1.5阶段

centos 6
    使用dd模拟破坏1.5阶段


dd if=/dev/zero of=/dev/sda bs=1 count=10000 skip=512 seek=512
    破坏1.5阶段可以上述破坏1阶段完全一样的解决方案,因此不做重复书写
  重启后的现象,硬盘可以正常引导第一阶段,但是会在1.5阶段卡死,光标不断闪烁。


centos 7也与破坏1阶段相同

删除boot目录下的所有文件

centos 6
    删除boot目录下所有文件

        rm -rf /boot
    重启后现象

  法一:
                1.进入救援模式
        2.切换根目录

        chroot /mnt/sysimage
      3.挂载光盘

        mount /dev/sr0 /media


                4.复制光盘目录下的vmlinuz到/boot


            cp /media/isolinux/vmlinuz /boot/

            5.进入/boot目录并且生成initramfs.img文件


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

            6.使用grub-install 生成grub目录


        grub-install /dev/sda

            7.编辑grub.confg配置文件


    vim grub/grub.conf

            default=0
timeout=5
title linux
kernel /vmlinuz root=/dev/sda2
initrd /initramfs.img
#这里的root指的是根目录 kernel和initrd 后跟的是/boot目录下的对应文件
#若根和boot在同一分区则应当写成
kernel /boot/vmlinuz root=/dev/sda2
initrd /boot/initramfs.img
    这里的kernel和initrd选项不能互换,kernel必须在文件系统前进行引导。

        8.配置完成后,sync,退出切换根模式,执行重启
  法二
            1.进入救援模式
    2.挂载光盘并且rpm -ivh kernel-version.rpm --root=/mnt/sysimage/ --force强制安装

                    mkdir /media
mount /dev/sr0 /media
rpm -ivh /media/Packages/kernel-2.6.32-696.el6.x86_64,rpm --root=/mnt/sysimage/ --force

            3. 切换根目录


        chroot /mnt/sysimage
          4.生成grub目录

        grub-install /dev/sda

        5.编辑grub.conf配置文件


    vi /boot/grub/grub.conf


            6.保存,sync 退出根切换之后重启


    sync
exit
reboot


centos7
    centos7系统法恢复方式和6流程基本相同,但是由于centos7使用了grub2,因此在某些阶段会有一些差别
      法一:
        1.进入救援模式
    2.挂载光盘并且rpm -ivh kernel-version.rpm --root=/mnt/sysimage/ --force强制安装

                    mkdir /media
mount /dev/sr0 /media
rpm -ivh /media/Packages/kernel-3.10.0-862.el7.x86_64,rpm --root=/mnt/sysimage/ --force

    3. 切换根目录


        chroot /mnt/sysimage
      4.生成grub目录

        grub2-install /dev/sda
      5.生成配置文件,grub2增加了一个自动查找文件生成配置文件的选项grub2-mkconfig,同时配置文件的后缀也改为了cfg

    cd /boot/grub2
grub2-mkconfig -o grub.cfg

        6.保存,sync 退出根切换之后重启


    sync
exit
reboot

    法二:
        1.进入救援模式
        2.切换根目录

        chroot /mnt/sysimage
      3.挂载光盘

        mkdir /media
mount /dev/sr0 /media
      4.复制光盘目录下的vmlinuz到/boot

            cp /media/isolinux/vmlinuz /boot/

    5.进入/boot目录并且生成initramfs.img文件


            cd /boot
mkinitrd initramfs.img `uname -r`
      6.使用grub-install 生成grub目录

        grub2-install /dev/sda

    7.编辑grub.confg配置文件
    这里配置文件同样可以使用grub2-mkconfig生成,但是却无法识别手动拷贝的vmlinuz和initramfs.img文件,因此要手动修改配置文件。
  grub2配置文件的参数可以参考下面这篇文章:


                https://blog.csdn.net/lazyclough/article/details/5790385

    8.配置完成后,sync,exit退出切换根模式,执行重启

  这里centos7来说推荐使用方法一,grub2-mkconfig可以识别对应文件并且生成配置文件。




运维网声明 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-673218-1-1.html 上篇帖子: 模拟centos6.9系统MBR故障 下篇帖子: CentOS7启动故障修复实验
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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