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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM