這篇文章給大家介紹怎么解決開機grub-rescue問題,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計項目的能力。經(jīng)過10年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。
在實際折騰Linux的過程中,遇到grub-rescue問題是件很正常的事情。實際上這個問題,沒有什么技術(shù)含量,但是要看什么場合。
記得之前教了某個MM玩Linux,主要也是工作需要吧。本來一切都是很美好的,可是下午卻被一通電話吵醒了。電話的那頭很著急的跟我說,她的電腦啟動不了了,電腦啟動不了的理由有千萬種死法。于是我平靜的問她,由什么提示或輸出嗎?
然后她跟我講屏幕中出現(xiàn)了grub resuce的字樣。對于這樣的情況,不用說我都知道,她把某些東西給搞壞了。但是按照網(wǎng)上的教程卻無法修復(fù),于是詳細詢問后就有了這篇文章了。
實話說,grub2主要分為2個部分,一部分一般情況下寫在MBR中,而另1部分寫在某個分區(qū)的/boot/grub目錄中。如果grub沒有正確的被安裝就可能會引發(fā)上面的問題。
對于這樣的問題,我們可以通過如下的方式來進行修復(fù):
找到Linux安裝的分區(qū)
進行臨時grub的關(guān)聯(lián)
重新生成grub
下面我們分別來進行說明。 在這里,要修改的Linux為Ubuntu 14.04版本,對于其他的發(fā)行版也是類似的。
找到分區(qū)
我們先在提示符grub rescue>下輸入命令ls列出所有的磁盤分區(qū)信息,這里假設(shè)得到如下的結(jié)果:
(hd0),(hd0,msdos8),(hd0,msdos7),(hd0,msdos6),....
接著,我們需要嘗試列出某個分區(qū)上是否存在/boot/grub這個目錄。對于Windows系統(tǒng)的分區(qū)來說,會直接得到1個unknow filesystem的錯誤提示。換句話說,我們需要進行如下的操作:
ls (hd0,msdosX)/boot/grub
在這里,X代表上面分區(qū)中得到的數(shù)字,比如msdos8中的數(shù)字8。
如果按照這種方式應(yīng)該是可以找到對應(yīng)分區(qū)的,這也是網(wǎng)上教程的方法,但是由于她的電腦中將boot分區(qū)單獨進行了分區(qū),因此使用上述的方式會出現(xiàn)1個對應(yīng)文件不存在的提示。
因此,我們需要將上述的方式修改為:
ls (hd0,msdosX)/grub
在這里,我們?nèi)サ袅薭oot目錄,這樣就可以搜索到對應(yīng)的目錄了。 對于在使用ls命令時提示文件不存在的情況我們可以進行如下的操作:
ls (hd0,msdosX)/
進行關(guān)聯(lián)
緊接著,如果找到了正確的grub目錄后,我們需要將其與grub關(guān)聯(lián)起來,在這里,我們主要通過set命令來進行設(shè)置操作,從而臨時進行關(guān)聯(lián)操作:
grub resuce> set root=(hd0,msdos6) grub resuce> set prefix=(hd0,msdos6)
而GRUB的正常啟動過程涉及到通過grub-install生成的核心鏡像的環(huán)境變量prefix。而環(huán)境變量root主要用于從前綴中加載normal模塊。
在這里,我們假設(shè)正確的分區(qū)為(hd0,msdos6),我們通過set命令設(shè)置其root和prefix都為該分區(qū)。之后我們需要進行加載的操作了:
grub resuce> insmod normal grub resuce> normal
在這里,normal命令會讀取/boot/grub/grub.cfg文件并運行菜單。
重新生成grub
通過上述的方式我們可以現(xiàn)實丟失的grub菜單了。此時不要高興的太早了,因此這只是臨時的關(guān)聯(lián),如果重啟的話,這個問題還是會再次出現(xiàn)的。為了解決這個問題,我們需要進入Linux中重新生成grub來進行修改:
cat@cat-pc:~$ sudo update-grub Generating grub configuration file ... Found theme: /boot/grub/themes/deepin/theme.txt Found background image: /boot/grub/themes/deepin/background.png Found linux image: /boot/vmlinuz-4.4.0-2-deepin-amd64 Found initrd image: /boot/initrd.img-4.4.0-2-deepin-amd64 Found Windows 7 (loader) on /dev/sda1 done cat@cat-pc:~$ sudo grub-install /dev/sda Installing for i386-pc platform. Installation finished. No error reported.
在這里,我們假設(shè)使用的是deepin的發(fā)行版,然后使用update-grub重新生成grub菜單。最后再使用grub-install將其安裝在硬盤上。
關(guān)于怎么解決開機grub-rescue問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。