一、修复MBR:

    MBR(Master Boot Record主引导记录):

        硬盘的0柱面、0磁头、1扇区称为主引导扇区。其中446Byte是bootloader,64Byte为Partition table,剩下的2Byte为magic number。

 

    备份MBR:

        #dd if=/dev/sda of=/root/mbr.bak count=1 bs=512

 

    破坏bootloader:

        #dd if=/dev/zero of=/dev/sda count=1 bs=200

        这里边block size只要小于等于446即可。

 

    修复方式:

        1、借助其他系统挂载磁盘修复。

            修复方式同光盘修复类似,也是使用grub2-install命令。

 

        2、借助安装光盘修复。

            1.装入光盘,在光盘引导界面选择troubleshooting:

               

     

bios镜像结构 bootice磁盘镜像_bios镜像结构

            2.选择进入救援模式:

             

bios镜像结构 bootice磁盘镜像_centos_02

      

            3.按回车键继续:

                 

bios镜像结构 bootice磁盘镜像_mrb引导_03

  

 

            4.进入磁盘挂载选择模式:

                磁盘将会被挂载至/mnt/sysimage/下

  1. continue 以rw方式挂载分区。
  2. read only 以ro方式挂载分区。
  3. skip 跳过,将来自己手工挂载磁盘。

            5.选择continue,稍等片刻,提示已经挂载完成。

                 

bios镜像结构 bootice磁盘镜像_bios镜像结构_04

       

bios镜像结构 bootice磁盘镜像_bios镜像结构_05

                   

bios镜像结构 bootice磁盘镜像_mrb引导_06

     

            6.此时进入救援模式的命令行: 

                

bios镜像结构 bootice磁盘镜像_window_07

     

            7.使用grub2-install命令重建bootloader:

                #grub2-install root-directory=/mnt/sysimage /dev/sda

                    

bios镜像结构 bootice磁盘镜像_window_08

                 显示无错误,使用sync写入硬盘,reboot重启系统。

            8.重启后无错误,grub正常运行:

                    

bios镜像结构 bootice磁盘镜像_mrb引导_09

                至此,MBR修复完成。

 

 

二、修复grub

    grub配置文件丢失:

        开机后会直接进入grub界面,显示为grub>:

        

bios镜像结构 bootice磁盘镜像_bios镜像结构_10

        修复步骤如下:

       

grub>insmod xfs
 
        grub>set root=(hd0,1)
 
        grub>linux16 /vmlinuz-xxxxx root=/dev/mapper/centos-root
 
        grub>initrd16 /initramfs-.xxxxx.img

         

    修复完成后即可进入系统,重建配置文件。

    注意:CentOS7因为使用的是grub2,配置文件同grub有不少变化,一定要切记备份grub.cfg以便恢复。

列外:

1.  

win pe修复win7引导后centos7引导消失的恢复方法:  

步骤(一): 用centos iso 制作启动u盘进入到安装centos的界面,开机选择的时候不要选择安装centos,而是选择trouble shooting疑难解答选项,然后选择rescue a centos system。按tab键选择continue (一定要选),然后选择ok. 

步骤(二):  进入命令行界面,输入: chroot /mnt/sysimage  ,接着就是重要的一步,安装grub2了。执行以下命令:  /sbin/grub2-install /dev/sda , 安装成功后执行reboot重新启动系统。但是以上步骤只是又把centos的启动项找回来了,windows7的引导又不见了,win7的引导需要在后续步骤通过grub2来完成。

2.  

恢复centos引导后继续恢复windows7引导的方法:  

经过前面所述步骤之后centos系统又能打开了,所以可以直接通过centos的grub2功能实现windows的引导。此时可以输入此命令直接搞定: grub2-mkconfig -o /boot/grub2/grub.cfg ,然而,输入该命令后并没有发现与window相关的任何信息,纠结了半天发现是centos不能识别本人win7系统的磁盘格式。也就是说使用上述命令的前提是centos能够识别windows7系统的磁盘格式。

由于本人的windows7系统安装在ntfs格式的分区中,所以我先安装ntfs-3g,使centos能识别出windows所在的分区。

步骤(一): 安装ntfs-3g的步骤如下:

添加ntfs-3g下载源, 输入: 

wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo  

更新yum,输入: 

yum update  

开始安装ntfs-3g,输入: 

yum install ntfs-3g  

至此,ntfs-3g安装完毕,只要成功安装了ntfs-3g, 那么恢复win7启动项的光辉时刻就已经到了,并且,步骤及其简单,您只需再次输入之前提到的命令:

grub2-mkconfig -o /boot/grub2/grub.cfg , 系统就能自动找到win7系统或xp系统的引导项,并加入到了grub.cfg菜单中。这样就避免了手工改动文件的危险,并且所有系统都能正常启动。