手把手教你如何恢復 /boot 目錄
前言
/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 目錄