zoukankan      html  css  js  c++  java
  • CentOs7 修复 引导启动

    一、修复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:

                        

                2.选择进入救援模式:

                       

                3.按回车键继续:

                        

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

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

      1. continue 以rw方式挂载分区。

      2. read only 以ro方式挂载分区。

      3. skip 跳过,将来自己手工挂载磁盘。

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

                            

                            

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

                         

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

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

                        

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

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

                        

                    至此,MBR修复完成。

    二、修复grub

        grub配置文件丢失:

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

            

            修复步骤如下:

            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菜单中。这样就避免了手工改动文件的危险,并且所有系统都能正常启动。不过,我多此一举的使用以下命令挂载了 windows NTFS 的分区(我的 Windows 分区分别是 /dev/sda1、 /dev/sda2、 /dev/sda4),注意:挂载是不必要的,因为在这个步骤中我们的真正目的是恢复win7的启动项,作为一个linux小白,我只是借此场景熟悉一下mount命令的用法而已。我用以下命令分别挂载了通过 grub2-mkconfig -o /boot/grub2/grub.cfg命令搜索到的所有windows分区: 
    cd /mnt 
    mkdir forwin 
    mount -t ntfs-3g /dev/sda1 /mnt/forwin 
    mkdir forwin2 
    mount -t ntfs-3g /dev/sda2 /mnt/forwin2 
    mkdir forwin3 
    mount -t ntfs-3g /dev/sda4 /mnt/forwin3

  • 相关阅读:
    netcore使用IdentityServer在nginx下502错误的解决
    更新到.netcore3.0后找不到dotnet-ef的解决办法
    openssh-win64 on windows2016 ssh pub key config
    405 Method Not Allowed error with PUT or DELETE Request on IIS Server
    minikube windows hyperx填坑记
    angular当router使用userhash:false时路由404问题
    内网gitlab11.2升级至11.4.5
    Angular7上手体验
    动态规划之背包问题
    Union-Find算法详解
  • 原文地址:https://www.cnblogs.com/ouyangping/p/6664719.html
Copyright © 2011-2022 走看看