CentOS启动故障排错

一.MBR破坏

centos 6

  经过dd破坏前512个字节,模拟mbr损坏。(事先要作好备份)linux

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

  查看破坏状况shell

hexdump -C -n512 /dev/sda

  破坏前
CentOS启动故障排错
  破坏后
CentOS启动故障排错
  未重启的状况下,仅仅须要将备份的mbr从新读入便可vim

dd if=/root/mbr of=/dev/sda bs=1 count=512
    #if后是读取内容的文件或设备 of后是目标设备或者文件
    #这里再也不截图,读取后便可恢复正常

  重启后的现象(最好是挂载有镜像文件能够进入救援模式)
  硬盘没法引导
CentOS启动故障排错centos

解决方案
  进入救援模式(在品牌logo是按相应的键进入引导,这里使用vm的方法)
  1.在logo界面按ESC
CentOS启动故障排错
   2.选择光盘引导
CentOS启动故障排错
   3.选择救援模式启动
CentOS启动故障排错
  .4.等待一段时间后进入以下页面
CentOS启动故障排错
  5.一路回车,到网络配置选择no,挂载文件系统选择跳过,以后开启shell。
CentOS启动故障排错
CentOS启动故障排错
CentOS启动故障排错
  6.查看磁盘发现,发现能够识别磁盘,可是没法识别分区
  7.这里我将mbr备份到了另外一台同局域网的主机上,这里经过ifconfig配置ip,以后使用scp将备份取回网络

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

CentOS启动故障排错
  8.经过dd恢复mbr记录,以后重启,若是担忧还没有写入可使用sync命令去同步ide

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

CentOS启动故障排错
  重启后能够正常引导,同时查看mbr发现已经恢复
CentOS启动故障排错ui

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


破坏grub第一阶段

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

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

centos 6

未重启
   法一:grub-install能够实现1 1.5 2的全步骤恢复.net

grub-install /dev/sda

CentOS启动故障排错
   法二:grub命令3d

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

CentOS启动故障排错
grub命令的修复依赖于/boot/grub下的文件,若这些文件被破坏则没法使用grub命令去修复

重启(救援模式下)
   没法引导,现象以下
CentOS启动故障排错
   1.进入救援模式
   这里进入和以前破坏mbr基本相同,可是在下图所示的地方要选择continue
CentOS启动故障排错
   2.切换根目录

chroot /mnt/sysimage

CentOS启动故障排错
   3.运行grub-install

grub-install /dev/sda

CentOS启动故障排错
   4.执行sync以后exit,reboot
CentOS启动故障排错
CentOS启动故障排错

centos7

  centos7使用的是grub2,取消了正常启动系统后,经过grub命令进入grub终端的方式,与6相比,7可使用grub2-install命令进行修复,具体过程同6基本相近。
CentOS启动故障排错
  重启后状态
CentOS启动故障排错
  进入救援模式修复
CentOS启动故障排错
  grub2-install后执行sync 退出根目录切换状态reboot,正常启动
CentOS启动故障排错


破坏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启动故障排错

centos 7也与破坏1阶段相同


删除boot目录下的全部文件

centos 6

  删除boot目录下全部文件

rm -rf /boot

  重启后现象
CentOS启动故障排错
  法一:
     1.进入救援模式
     2.切换根目录

chroot /mnt/sysimage

    3.挂载光盘

mount /dev/sr0 /media

CentOS启动故障排错
     4.复制光盘目录下的vmlinuz到/boot

cp /media/isolinux/vmlinuz /boot/

CentOS启动故障排错
     5.进入/boot目录而且生成initramfs.img文件

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

CentOS启动故障排错
     6.使用grub-install 生成grub目录

grub-install /dev/sda

CentOS启动故障排错
     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必须在文件系统前进行引导。
CentOS启动故障排错
     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

CentOS启动故障排错
     3. 切换根目录

chroot /mnt/sysimage

     4.生成grub目录

grub-install /dev/sda

CentOS启动故障排错
     5.编辑grub.conf配置文件

vi /boot/grub/grub.conf

CentOS启动故障排错
     6.保存,sync 退出根切换以后重启

sync
    exit
    reboot

CentOS启动故障排错

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

CentOS启动故障排错
    3. 切换根目录

chroot /mnt/sysimage

    4.生成grub目录

grub2-install /dev/sda

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

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

CentOS启动故障排错
     6.保存,sync 退出根切换以后重启

sync
    exit
    reboot

CentOS启动故障排错

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

chroot /mnt/sysimage

    3.挂载光盘

mkdir /media
        mount /dev/sr0 /media

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

cp /media/isolinux/vmlinuz /boot/

CentOS启动故障排错
    5.进入/boot目录而且生成initramfs.img文件

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

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

grub2-install /dev/sda

CentOS启动故障排错
    7.编辑grub.confg配置文件
    这里配置文件一样可使用grub2-mkconfig生成,可是却没法识别手动拷贝的vmlinuz和initramfs.img文件,所以要手动修改配置文件。
  grub2配置文件的参数能够参考下面这篇文章:

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

CentOS启动故障排错
    8.配置完成后,sync,exit退出切换根模式,执行重启

这里centos7来讲推荐使用方法一,grub2-mkconfig能够识别对应文件而且生成配置文件。

相关文章
相关标签/搜索