在使用Linux的過程中,難免會出現開機提示grub >而無法啟動,可能是系統中/boot/grub文件丟失等原因造成的,當出現此問題的時候只要系統分區沒有格式化一般是可以修復的,下面就以虛擬 機為例,刪除/boot分區,在linux救援模式下重新修復: 實驗使用的系統為Centos 6.5 x86_641、刪除boot分區:會導致grub和linu內核丟失,然後重啟:

此時系統重啟後已經完全無法再次啟動,如下:

2、使用光盤鏡像引導系統,並選擇救援模式啟動:

提示將系統掛載至/mnt/sysimage:

2、將根切換至之前的系統:

3、創建光盤掛載目錄並掛載光盤:

4、安裝kerner包,會生成/boo目錄以及內核及initramfs

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

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

6、確認geub目錄已經生成:

此時系統仍然無法正常啟動,因為確認grub.conf文件,可以嘗試重啟看一下界面:

5、在grub界面指定kernel和initramfs所在路徑啟動,可以操作的命令有:grub>kernel 內核文件 //設置內核文件的路徑grub>initrd 鏡像文件名 //設置鏡像路徑grub>boot //啟動指定操作系統grub>help //獲取幫助grub>reboot //重啟系統grub>md5-crypt //生成口令的MD5密文grub>setup (hdx[,y]) //安裝GURB到MBR/指定分區的引導扇區中grub>hide 分區 //隱藏分區grub>cat 文件名 //顯示文件內容grub>find 文件名 //查找文件grub>rootnoveify (hdx,y) //設置根設備所對應的分區,但不檢查加載點grub>chainloader 文件名 //加載指定的文件 在此指定linux內核和initramfs文件路徑,並啟動linux系統:

注:grub> root (hd0,1) #是說跟分區在第一塊硬盤的第二個分區grub> kernel /boot/vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda2 #指明內核路徑和根分區grub> initrd /boot/initramfs-2.6.32-431.el6.x86_64.img #指明initramfs路徑啟動系統加載驅動grub> boot #啟動上面指定的系統,如果是reboot就等於重啟整個系統了,剛才的設置就失效了 此時已經可以引導系統啟動了,但是還沒有grub.conf文件,可以在系統啟動後編寫一個grub.conf文件即可

6、編寫grub.conf文件: 可以看到,此時系統是沒有grub.conf文件的,如果重啟系統後就無法正常開機了,除非在grub界面指定內核和驅動文件的路徑:

創建grub.conf文件:

注:kernel 一行後面root=/dev/sda2是指的根分區所在的磁盤,假如boot分區和根分區沒有在一起,則grub.conf文件要寫明boot分區和根分 區,另外不推薦安裝磁盤分區的方式寫根分區的路徑,因為有可能系統重啟後磁盤好會出現變化,因此推薦使用UUID的方式表明,每個分區都有自己的 UUID,是在整個系統中唯一的身份標示,可以使用命令blkid /dev/sda2獲取。7、最後重啟系統,以硬盤直接啟動測試;

系統已經正常啟動完成!