boot分區 和fstab文件被損壞後的解決方案

本節索引


  • 故障描述

  • 解決思路

  • 故障判定

  • 故障解決流程


故障描述


  1. /boot分區被損壞。

  2. /etc/fstab文件被誤刪除。

由於/boot分區被損壞,所以導致grub無法引導操作系統。/etc/fstab文件被誤刪導致在進入Rescue模式原操作系統不會被自動掛載至/mnt/sysimg下。

解決思路


  1. 首先恢復fstab文件,使救援模式能夠識別原操作系統。

  2. 恢復系統引導所需的grub文件。

  3. 恢復系統啓動所需的內核文件和虛擬磁盤文件

故障判定


  1. 磁盤主引導記錄被損壞現象:

    直接跳過磁盤啓動,從其他啓動項啓動(光盤或者網絡)

  2. 系統從磁盤啓動,但停滯在如下階段。

    Grub引導1_5階段出錯,導致無法進入grub2階段的啓動菜單界面

       解決思路,修復grub

       wKioL1nGZ9zA-iTGAAANlZLALyY298.png


故障解決流程


準備工作

與操作系統版本相同的光盤

  1. 開機後選擇從光驅引導

    wKiom1nGaCmx9AkkAAArm-2NYUQ760.png

  2. 選擇救援模式wKiom1nGaEbDJs69AAYUe9rNun4207.png

  3. 選擇語言

    默認選擇EnglishwKioL1nGaB_y2offAAAvf3VJqco562.png

  4. 選擇鍵盤類型

    一般默認選擇,特殊鍵盤選擇指定類型即可wKioL1nGaFyB6bcsAAA14Aa6iUU579.png

  5. 配置網絡

    此故障無需配置網絡,選擇NOwKioL1nGaHmznjCSAAAd3VHLUs8093.png

  6. 選擇開啓救援模式

    開啓救援後,會試圖把原來的Linux系統掛載在/mnt/sysimage目錄下wKiom1nGaN_Dqa4FAABZM4QC38k721.pngwKiom1nGaPyQpZFfAAAmL4WxTL8255.png由於原來系統下沒有/etc/fstab文件,所以救援模式無法掛載分區至/mnt/sysimg下。回車,開啓一個shell命令行wKiom1nGaSjyWP3qAAAhEkpfpns473.png

  7. 查看原來系統所在磁盤

    分區使用fdisk 命令查看原來系統所在磁盤的分區詳細信息。wKiom1nGaXqjDYURAAA4KPDiYVc577.png

    從結果可以看出,/dev/sda1boot字段有*標識,表示該分區爲boot分區;

    /dev/sda5的分區類型爲swap,表示該分區爲swap分區;

    其他分區從fdisk的返回結果暫時無法確定其掛載點是什麼。

    創建一個臨時目錄,掛載無法判斷的分區,通過內容判斷其掛載點。wKioL1nGaYagqpLiAAAPPH9CIZI480.png

    掛載/dev/sda2,查看其目錄結構符合根分區的目錄結構,所以判斷該分區爲根分區。wKiom1nGac7zG2tGAAARMRKRV1E867.png

  8. 編輯一個fstab文件

    在原系統的根分區下編輯一個fstab文件,路徑爲/mnt/tmp/etc/fstab

    *注意  救援模式不支持使用vim,請使用vi編輯器添加下圖內容wKiom1nGahbRF1QMAAAZW93Wr_I158.png

  9. 重啓系統,重新進入救援模式wKioL1nGaf_hZlLTAAAiCVCv9G4289.png

    選擇語言,鍵盤類型,配置網絡Rescue界面選擇Continue後,顯示原來系統已掛載至/mnt/sysimgwKioL1nGahaiQrrEAAA4HynW24U270.png

  10. 恢復boot目錄內容

    切換根分區

    sh-4.1# chroot /mnt/sysimage

    掛載光盤重

    sh-4.1# mount /dev/cdrom /mnt

    新安裝內核

    sh-4.1# rpm –ivh /mnt/Packages/kernel-2.6.32-696.el6.x86_64.rpm --force

    修復grub

    sh-4.1# grub-install /dev/sda

    具體過程可見下圖wKioL1nGarLgF0q0AAAxMi9Dajo737.png

  11. 創建grub.conf文件

    /boot/grub下創建一個grub.conf文件,內容至少包括下圖幾項

    default :若啓動菜單爲多個,默認從哪個啓動

    timeout:在達到時間無指令打斷後默認啓動

    title:菜單內容,用戶可自定義

    kernel: 內核文件路徑

    initrd: 虛擬文件系統路徑

    *注意 kernel initrd的路徑都是以/boot爲根

    即:/boot=/

    eq: /boot/vmlinuz-2.6.32-696.el6.x86_64  =  /vmlinuz-2.6.32-696.el6.x86_64wKiom1nGa2viXi8CAAAT-2eatn4480.png

  12. 退出當前根環境,重啓系統系統wKioL1nGa1PxiFLIAAAhwCaaG8c410.png

    引導之後會出現Selinux的檢查階段,耗時會很久,請耐心等待

    wKioL1nGa5qBLFrSAABlarD8Is8944.png

    wKioL1nGa7LTQBREAAAVfeCC42Y758.png


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