首頁 > 軟體

CentOS 6.5 修復grub引導

2020-06-16 17:37:10

在使用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、最後重新啟動系統,以硬碟直接啟動測試;



系統已經正常啟動完成!

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-07/133521.htm


IT145.com E-mail:sddin#qq.com