雙系統,重裝windows後啟動linux失敗修復方法
一、背景
這幾天將windows10 32位升級到64位後(其實是重裝,增量升級應該不能實現,如果有方法請留言),使用easybcd添加linux啟動項後選擇linux啟動項,進去就是黑屏,只有一個光標在閃,沒有任何文字,第一次碰到這個情況,我慌了,雖然折騰雙系統期間經歷過各種蛋疼的問題,但是linux始終是能進去的,至少能進個grub rescue模式。蛋疼的修復嘗試開始了。
二、正確的方法:
雙系統重裝windows後,如何找回linux啟動項
三、錯誤的嘗試 + 修復grub方法
1.使用easybcd添加linux啟動項,找到linux安裝盤,添加啟動引導選項,重啟,選擇該選項,進入之後還是一片黑,沒有任何字符提示。
2.多次嘗試後依然失效。在windows界面使用硬盤安裝linux方法(沒帶制作好的ubuntu引導的u盤),進入try ubuntu系統,在命令行內輸入 以下命令:
sudo update-grub
sudo grub-install/dev/sda
重啟系統,開機時能看到grub引導界面,那就成功了,如果還不能進入linux系統,繼續看下面。蛋疼的是我只輸入了第一個命令,沒有運行第二個命令,啟動之後還是只能進入黑屏。
但是有一個改變是能夠看到grub> 的提示。本來以為大功告成了,因為這個界面熟之又熟,豈料又是本人的知識淺陋。
3.網上找了各種修復grub的方法。如:Grub
Rescue修復,年輕還是要多折騰
發現根本就不能執行,原來他們多了個rescue 字樣,兩種不同的模式。執行的命令肯定也完全不同。
而此時已經再也進不去windows系統,玩不了硬盤安裝linux的把戲,也沒有u盤可以使用,只能硬著頭皮玩grub了。
4.找到各種grub模式下的修復方法,測試可行的方法:通過GRUB命令行來啟動Linux操作系統。
以下是我的系統最終執行命令,但切勿照抄(當然抄了也不會有更嚴重的後果,還是啟動不了而已),模仿即可:
grub> root (hd1,5)
grub> kernel (hd1,5)/vmlinuz ro root=/dev/hda
grub> initrd /boot/initrd-xxxxx.img
grub> boot
以上命令有空格的地方都加大了間隙,實際只要輸入一個空格,沒有空格的地方千萬不能有空格!!
5.步驟詳解。
a)要找到上面命令每個參數的值,可以使用tab鍵,第一個命令輸入root (hd ->tab鍵,系統列出一系列電腦中的硬盤,選擇linux所在的硬盤,譬如root (hd1, 再按tab鍵,列出該硬盤中的磁盤分區,選擇linux所在的分區號,譬如 root (hd1,5)。至此,第一個命令已執行完畢,繼續。
b) 在上一步基礎上輸入: kernel (hd1,5)/vmlinuz ro root=/dev/hda
其中root=/dev/hda hda是我需要安裝grub的磁盤(我有兩塊硬盤,如果需要安裝到另外一塊硬盤上選擇hdb,其他的以此類推)。
(hd1,5)/vmlinuz 是上一步驟中的linux安裝盤中的vmlinuz文件。ro就是只讀模式
c) 輸入initrd /boot/initrd- 按tab鍵,找到最新的系統鏡像 xxx.img
d) boot 開始引導系統,進入linux系統。如果還是啟動不了重復以上步驟知道可以。
e) 還沒大功告成,再次重啟還是需要重復以上步驟,所以需要在進入linux後運行以下命令:
sudo update-grub
sudo grub-install/dev/sda
此文章是記錄自己的錯誤修復之旅,主要介紹grub模式下的修復方式,正常只要照著 正確的方法 操作即可。