Centos6 修復grub損壞故障


1、查看系統中的/boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_test-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.el6.i686)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.i686 ro root=/dev/mapper/vg_test-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_test/lv_swap SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rd_LVM_LV=vg_test/lv_root rhgb quiet
        initrd /initramfs-2.6.32-431.el6.i686.img
 
 
2、模擬故障
刪除boot目錄下的grub相關文件:

 

重啟之后報錯:

 

 

3、修復故障

開機進入救援模式:

 

 

操作之前將根切換至之前的系統:

 

 

創建光盤掛載目錄,並掛載光盤,安裝kerner包,會生成/boot目錄以及內核及initramfs :

 

 修復grub,首先要查看一下自己的磁盤分區情況,以確認grub安裝在那個磁盤上:

 

 

 

從上圖可以看到/boot 安裝在/dev/sda1分區。 

 

為第一塊磁盤安裝grub引導:
 

 

 
確認grub目錄已經生成,后面會用到:
 

 

此時仍然在救援模式,編輯/boot/grub/grub.conf文件

sh-4.1#vi  /boot/grub/grub.conf
default=0
timeout=5
hiddenmenu
title    linux
root   (hd0,0)
kernel  /vmlinuz-2.6.32.-431.el6.x86_64   ro    root=/dev/mapper/vg_test-lv_root
initrd   /initramfs-2.6.32-431.el6.x86_64.img
 
:x
保存並退出。然后重啟,可以正常進入系統。

 

進入系統之后查看/boot/grub/grub.conf文件:

 

 

 參數解釋:
  • chroot /mnt/sysimage                進入系統真實系統下
  • df -h                                              觀察發現 / 掛載到邏輯卷上 /dev/mapper/vg_test-lv_root
  • grub-install  /dev/sda                   在根(/)掛載磁盤生成grub目錄。絕大多數情況下,根和/boot在一個磁盤   
  • default=0                                     默認進入第一個引導系統
  • timeout=5                                     5秒后自動進入啟動界面 
  • hiddenmenu                                隱藏菜單
  • title  linux                                    標簽 
  • root (hd0,0)                                boot目錄在(hd0,0)分區上 
  • kernel                                         /vmlinuz-2.6.32.-431.el6.x86_64   ro   root=/dev/mapper/vg_test-lv_root 【若硬盤和分區很多,推薦使用UUID】
  • 或 kernel              /vmlinuz-2.6.32-696.e16.x86_64 ro    root=UUID=XXXXX \\指明內核文件,ro為只讀掛載,root指定根分區(可以是分區或者邏輯卷,或者指定根分區的UUID),rhgb為啟動過程圖形化顯示的參數,quiet為顯示內核啟動過程的參數
  •  initrd /initramfs-2.6.32-696.e16.x86_64.img       指明ramfs文件
 
 
4、臨時編輯/boot/grub/grub.conf文件解決故障
可以在救援模式編輯/boot/grub/grub.conf文件,也可以臨時編輯啟動文件
/boot/grub/grub.conf
 

 

 
 boot回車啟動。可以正常進入系統。
 
 
注:
  • grub>  root (hd0,0)  #是說根分區在第一塊硬盤的第一個分區上。(hd0,1)是說根分區在第一塊硬盤的第二個分區上
  • grub>  kernel /boot/vmlinuz-2.6.32-431.el6.x86_64 ro  root=/dev/mapper/vg_test-lv_root        #指明內核路徑和根分區
  • grub>  initrd  /boot/initramfs-2.6.32-431.el6.x86_64.img    #指明initramfs 路徑啟動系統加載驅動
  • grub>  boot  #啟動上面指定的系統,如果是reboot就等於重啟整個系統了,剛才的設置就失效了
 
 
 
此時已經可以引導系統啟動了,但是還沒有grub.conf文件,可以在系統啟動后編寫一個grub.conf文件即可。 否則重啟系統后就無法正常開機了,除非在grub界面指定內核和驅動文件的路徑
 
  編寫grub.conf文件:
 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM