1. 程式人生 > >boot分區 和fstab文件被損壞後的解決方案

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

修復grub boot分區

本節索引


  • 故障描述

  • 解決思路

  • 故障判定

  • 故障解決流程


故障描述


  1. /boot分區被損壞。

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

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

解決思路


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

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

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

故障判定


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

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

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

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

解決思路,修復

grub

技術分享


故障解決流程


準備工作

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

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

    技術分享

  2. 選擇救援模式技術分享

  3. 選擇語言

    默認選擇English技術分享

  4. 選擇鍵盤類型

    一般默認選擇,特殊鍵盤選擇指定類型即可技術分享

  5. 配置網絡

    此故障無需配置網絡,選擇NO技術分享

  6. 選擇開啟救援模式

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

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

    分區使用fdisk 命令查看原來系統所在磁盤的分區詳細信息。技術分享

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

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

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

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

    掛載/dev/sda2,查看其目錄結構符合根分區的目錄結構,所以判斷該分區為根分區。技術分享

  8. 編輯一個fstab文件

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

    *註意 救援模式不支持使用vim,請使用vi編輯器添加下圖內容技術分享

  9. 重啟系統,重新進入救援模式技術分享

    選擇語言,鍵盤類型,配置網絡Rescue界面選擇Continue後,顯示原來系統已掛載至/mnt/sysimg技術分享

  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

    具體過程可見下圖技術分享

  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_64技術分享

  12. 退出當前根環境,重啟系統系統技術分享

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

    技術分享

    技術分享


本文出自 “Keep simple keep stupid” 博客,請務必保留此出處http://yangzhiheng.blog.51cto.com/11586378/1968182

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