巧妙恢復 /boot 下的文件


前言


        /boot目錄是一個系統啓動最重要的目錄,系統在上電自檢MBR引導之後,系統就要讀取/boot目

錄下的文件。詳細的內容見:http://vinsent.blog.51cto.com/13116656/1963546。總之/boot被破壞

了是很大的問題,今天就帶大家一步步恢復/boot目錄中的各文件,歡迎您的閱讀!!


一、破壞現象


我們都知道/boot/目錄是一個用於引導系統開機啓動的目錄,如果你不小心破壞了該目錄。你將的系統將不能啓動。CentOS 6會進入都如下界面:

wKioL1myaMDhyYPJAAAF6KYY6Cc036.png

        CentOS 7 會進入到如下界面:

wKioL1myh1mzKsLnAAAOTAv61T4795.png

        說明:上述條件不是可逆的;也就是說,破壞/boot/能出現上述錯誤提示界面,但出現上述界面不一定是/boot目錄損壞,所以要辯證的思維來看待。


二、修復思路


        出現了錯誤,不要害怕,用科學的思維來思考。既然刪除了boot,那麼我們就來看看/boot/目錄下

有什麼文件,我們只需要將所有文件還原即可。首先來看看/boot目錄中都有那些文件。

[ root@vinsent ~ ]#ls /boot          # 這是centos 7 的boot文件內的內容
config-3.10.0-514.el7.x86_64
efi
grub
grub2     # grub文件
initramfs-0-rescue-6f5368a682ab472398a493f780821598.img     
initramfs-3.10.0-514.el7.x86_64.img          # 虛擬根文件
initramfs-3.10.0-514.el7.x86_64kdump.img     # 故障發佈文件
initrd-plymouth.img
symvers-3.10.0-514.el7.x86_64.gz
System.map-3.10.0-514.el7.x86_64
vmlinuz-0-rescue-6f5368a682ab472398a493f780821598     # 救援模式內核文件
vmlinuz-3.10.0-514.el7.x86_64     # 系統啓動內核
[ root@vinsent ~ ]#

        CentOS 6系統中/boot目錄內的文件大體與CentOS 7相同,都是有內核文件,虛擬根文件系統,

以及grub文件。如下圖:

wKiom1myedahU0dwAAAXkzwCa44499.png

我們清楚了/boot目錄下的文件之後,只需要一一將這些文件恢復即可。


1、CentOS 6 恢復


        由於破壞了/boot我們不能進入系統,只能利用光盤模式進入到救援模式。

        選擇光盤啓動:啓動讀條時,將鼠標點進系統,並按下ESC鍵;切記只能按一下,否者不會出現以下界面。然後按↑↓方向鍵進入CD-ROM Drive 光盤啓動模式。

wKiom1mye8-DTEOMAAAXF6ZFpgI613.png

    選着進入救援模式

wKiom1myfJOTbqyMAANYrjcGIAY369.png

        之後會讓你選着語言以及鍵盤,這裏就不上圖;保持默認即可(英語、美式鍵盤)。

        接下來進入選着網絡,這裏需要注意;一般我們選擇不安裝網絡,如果你要執行遠程複製文件等操

作,可配置網絡;

wKiom1myf2XQ1FayAAAeDQYHCKQ504.png

        默認接下的選項,當進入稀土界面我們選擇continue即可

wKioL1myf62zTC_5AAA9N-FPipE986.png

        然後進入到shell選擇界面。我們選擇開啓一個shell,以供我們使用,完成系統修復。

wKioL1mygAuAA2WZAAAeFb1DC98202.png

        進入shell之後,我們就有得到了一個修復我們系統的平臺,正式開始修復工作。下面我已命令行模

式的形式爲大家展示,由於需要編輯文件,截圖不太好說明。見諒!

bash-4.1#
bash-4.1# chroot /mnt/sysimage
sh-4.1# mount /dev/sr0 /mnt
sh-4.1# cd /mnt/isolinux
sh-4.1# cp vmlinuz /boot/        # 複製光盤上的內核文件到/boot/目錄下
sh-4.1# mkinitrd initramfs-`uname -r`.img `uname -r`   # 創建虛擬根文件:initramfs-`uname -r`.img
sh-4.1# grub-install /dev/sda          # 恢復grub1、1.5階段的文件
sh-4.1# vi /boot/grub.conf        # 恢復grub.cfg文件
default=0
timeout=5
hiddenmenu
title Linux
kernel /vmlinuz root=/dev/sda2                # 內核文件位置 其中root=/dev/sda2 必須指定
initrd /initramfs-`uname -r`.img `uname -r`   # 寫虛擬根文件系統路徑
bash-4.1# sync     # 同步數據至磁盤
bash-4.1# exit 
bash-4.1# exit
reboot            # 此處的reboot,即上圖中的reboot;比建議手動輸入reboot重啓。

注意:

        上述我們恢復內核文件的方法是重光盤中拷貝過來的;我們也可以使用rpm安裝的方式來安裝內核文件(rpm -ivh /mnt/Packages/kernel-xxxx  --force)。

        在恢復grub.conf文件時,kernel行中的root=/deb/sda2必須寫,你如果不寫root所在的分區,系統將找不到根,也就意味着系統仍然不可用。


2、CentOS 7 恢復


        有了CentOS 6 恢復的經驗,那麼對於CentOS 7的恢復就顯得很容易了。步驟和思路都是一樣的,

只是在CentOS 7 中發生了一些變化(比如,在CentOS 7中使用grub2,而不在是grub了),有一些細

節需要大家注意。

啓動時進入到排錯模式:

wKioL1myiAuCFVPvAAASebPmsvU340.png

        進入救援模式

wKioL1myiF3D4FC3AAAdK8IFpaY105.png

        選擇默認啓動

wKioL1myiJyjdDz1AAAzJms7JW8085.png

        系統爲我們提供了一個小的臨時的系統,我們使用該系統恢復/boot下相應的文件

        首先恢復內核文件,我們這次採用rpm安裝的方式實現:

wKiom1myjv_xpl8sAAArXQ5uRH4663.png

        恢復grub2目錄內的文件

wKiom1myj0HTr0XhAABbpxZkWok415.png

        到此CentOS 7就破壞的/boot目錄就得到了恢復。


三、本篇小結


        本篇文章通過模擬/boot目錄被破壞了的情況,手把手教大家如何一步一步的修復/boot目錄,希望

對大家有所幫助。最近時間的確匆忙,可能有些許地方描述的不夠清楚,還望見諒。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章