CentOS6刪除/etc/fstab和/boot后恢復
背景:
Linux CentOS系統和啟動相關的文件都在/boot目錄下,如果我們將/boot目錄下所有的文件都刪除,然后在恢復系統,那以后在遇到系統啟動問題時就都可以解決了。在這基礎上,在將/etc/fstab文件刪除,這樣更加大了修復的難度,不過這都是可以修復的,這里就將介紹如何修復。
實驗環境:
Linux版本: CentOS 6.9
網絡環境:無網絡(如果有網絡可以直接從其他機器復制相關文件到機器上)
光盤:需要有CentOS6.9光盤(到時候需要用光盤進救援模式)
機器:VMware虛擬機
實驗:
如果是在虛擬機上做實驗,請先做好快照再做實驗,過程可能出現意外情況(盡管步驟和操作沒問題)。
第一步:先刪除/etc/fstab和/boot下的所有文件(可以移動到其他分區)
![]()
當做了第一步都重啟虛擬機,會出現一下情況:
![]()
第二步:重啟后直接進入到了grub引導程序,這時我們再重啟系統,進入到救援模式,這里就不介紹怎樣進救援模式,之前在一個博客(http://www.www58058.com/83078)里有詳細介紹如何進入救援模式。
在進入救援模式時,會和之前不一樣,因為我們刪除了/etc/fstab文件,所以系統無法掛載根和/boot分區
![]()
不過沒關系,直接點擊ok進入下一步就可以了,然后開啟一個shell
![]()
第三步:修復/etc/fstab
因為沒有/etc/fstab文件,系統無法幫我們掛載分區,所以需要先修復/etc/fstab文件,也就是手寫/etc/fstab文件,里面至少需要掛載根和/boot兩個分區。在寫文件之前我需要先知道哪個分區是根,哪個分區是/boot,可以用fidsk -l查看分區情況
![]()
![]()
這里不好判斷哪個分區是干什么的,但如果你很清楚的知道哪個分區是干什么的,那可以直接寫/etc/fstab文件了,現在我們先建一個目錄來臨時掛載分區,來看看/dev/sda2和/dev/sda3哪個是根。
![]()
已找到根、/boot和swap分區,現在可以放心的寫/etc/fstab文件了
/dev/sda1 /boot ext4 defaults 0 0 /dev/sda2 / ext4 defaults 0 0 /dev/sda5 swap swap defaults 0 0寫/etc/fstab文件的格式:
分區或者設備名 掛載目錄 文件系統 defaults(設置為默認) 0 0(最后兩個最好設為0)
![]()
![]()
第四步:修復boot
然后重啟系統,在進入到救援模式,讓系統自動幫我們掛載根,在進行下一步修復
![]()
當我們進入救援模式時就可以切根了,切根命令:chroot /mnt/sysimage
![]()
這個時候就可以開始修復/boot目錄了,首先我們應該知道啟動系統需要的文件:Linux內核(版本得對)、gurb、grub.conf
首先先掛載光盤,然后安裝內核(也可以直接將光盤里的內核文件復制過去)
安裝內核命令:rpm -ivh /mnt/Package/kernel-版本號(可以tab鍵補全).rpm
![]()
內核生成成功后,現在安裝grub,命令:grub-install /dev/sda
![]()
安裝gurb需要點時間,要耐心等待,等完成后看看是否有gurb程序
![]()
到現在就缺個/boot/grub/grub.conf文件,這需要我們手寫
default 0 #默認選擇第一項 timeout 3 #選擇等待3秒,之后進入默認選項 title Linux-CentOS6.9 #菜單選項名字 kernel /vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2 #內核版本和根的位置 initrd /initramfs-2.6.32-696.el6.x86_64.img #init寫完這個后保存退出,然后重啟系統,看是否成功,在重啟前先用命令:sync 來確保已寫到磁盤保存
如果啟動還有什么問題,看看是不是哪個文件寫錯了,或者目錄名沒對,還有就是光盤系統版本是否和修復的系統一致。
原創文章,作者:657188918,如若轉載,請注明出處:http://www.www58058.com/85776