1. 程式人生 > >手把手教你如何恢復 /boot 目錄

手把手教你如何恢復 /boot 目錄

恢復、/boot、grub.cfg、centos 6、centos 7


前言


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

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

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


一、破壞現象


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

技術分享

CentOS 7 會進入到如下界面:

技術分享

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


二、修復思路


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

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

[ [email protected] ~ ]#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     # 系統啟動內核
[ [email protected] ~ ]#

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

以及grub文件。如下圖:

技術分享

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


1、CentOS 6 恢復


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

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

技術分享

選著進入救援模式

技術分享

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

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

作,可配置網絡;

技術分享

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

技術分享

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

技術分享

進入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了),有一些細

節需要大家註意。

啟動時進入到排錯模式:

技術分享

進入救援模式

技術分享

選擇默認啟動

技術分享

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

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

技術分享

恢復grub2目錄內的文件

技術分享

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


三、本篇小結


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

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


本文出自 “vinsent” 博客,轉載請與作者聯系!

手把手教你如何恢復 /boot 目錄