Linux ubuntu windows雙系統grub引導修復
Ubuntu & windows雙系統引導修復(狹義)
關鍵詞:ubuntu; linux; windows; 雙系統; 雙系統引導; 引導修復; 雙系統引導修復;
開篇扯淡:
為什麼寫這篇教程?
- 因為前幾天重灌筆記本里面的windows系統後導致grub引導崩潰,還有一些其他問題。
結果當時最慘的時候ubuntu/windows8.1兩個系統全部進不去,grub rescue
模式下各個區也都試了一遍,還是不行。而且網上的資料多為重複轉載,不能針對性地解決問題。後來終於修好後決定自己寫一篇教程,既幫助遇到相同問題的童鞋,同時也作為自己的備忘。 - 當然還是練習
markdown
語法。不斷嘗試,不斷練習。
為什麼起名為“狹義”?
因為這篇教程有以下幾點針對性的限制條件;不能作為廣譜抗生素,只能對付特定的病菌:
0. 重灌windows後不能進入linux系統或不明原因雙系統的引導全部崩潰(一個系統也進不去,開機直接進入grub rescue
模式)
1. 使用grub
引導ubuntu/windows雙系統。
2. 需要讀者至少有能力製作usb啟動盤,並且會(不會就百度)一些PE系統的簡單操作。
3. 知道自己的雙系統都安裝在哪個區,可以在live ubuntu
sudo fdisk -l
命令檢視(如作者的ubuntu14.04安裝在/sda5
,windows 8.1安裝在/sda6
)。 4. 硬碟模式為
mbr
親測可行,UEFI
模式下作者沒有嘗試。 5. (Copyright © http://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
準備工作?
- 一個PE啟動盤(作者使用的模式是老電腦模式)
- 一個ubuntu啟動盤(14.04_i386是作者使用的版本)
一、針對無法進入linux系統,即windows系統引導沒有崩潰時的問題
- 這個問題的解決只需要ubuntu啟動盤。首先開機進入U盤中的ubuntu系統,選擇合適的語言(中文\英文…),接下來選擇試用ubuntu選項,進入桌面。在桌面任意空白處按
CTRL+ALT+T
- 輸入
sudo su
回車,獲取ROOT許可權。 - 輸入
mkdir /media/temp
回車,用於在/media
中建立一個資料夾/temp
- 接著輸入
mount /dev/sda5 /media/temp
回車,用於在/media/temp
中掛載你原本計算機上的ubuntu系統分割槽(注意!!!/sda5
是作者ubuntu的分割槽號,不要照抄!!) - 最後輸入
grub-install --root-directory=/media/temp /dev/sda
回車,等待出現Installation finished.No error reported.
提示資訊後,關閉終端 - 關閉臨時系統,拔出U盤,重新開機,可以看到熟悉的grub介面又出現了!
(圖片在自網路) - 等等!windows引導又崩了!沒有windows選項!別擔心,先進入你的ubuntu系統。喚出終端,輸入
sudo update-grub
回車。看!是不是出現Found Windows 8 (loader) on /dev/sda6
啦。保險起見重啟計算機,在grub內選擇windows選項,看能否正常引導。 修好了!enjoy!
二、針對雙系統引導均崩潰開機直接進入
grub rescue
模式或第一個針對中使用grub進入windows系統後引導仍不成功且黑屏游標一直閃爍的問題首先解決第二個針對的前半部分問題
雙系統引導均崩潰開機直接進入
grub rescue
模式- 首先進入U盤中PE系統,點選
“win引導修復”
,選擇適合自己電腦硬碟分割槽的修復方案後,點選開始修復。
(圖片來自網路) - 關機退出PE系統,拔出U盤,重啟電腦,我們發現起碼windows系統已經可以成功引導了!這是個好事,因為這樣接下來的步驟就與我們前面的第一個針對相同了!
- 實施第一個針對的7個步驟,OK了!enjoy!
- 首先進入U盤中PE系統,點選
現在解決第二個針對的後半部分問題
第一個針對中使用grub進入windows系統後引導仍不成功且黑屏游標一直閃爍(Copyright © http://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
- 如果有童鞋跟作者一樣
不走運的話,會遇到即使update-grub
成功識別了你分割槽中的windows loader而且重啟計算機後在grub列表裡也確實有windows選項,但點進去後仍然不
會引導windows系統,而只是黑屏一個游標不停地閃。這就很尷尬了。。。 - 但同志們不要怕!作者已經幫你們趟出一條路了!那就是:修改
grub.cfg
!(圍觀群眾毫不吃驚臉…) - 作者猜想,可能經過PE的修復,grub已經可以識別出windows的引導器了,然而由於是人工修復的windows引導,所有預設生成的
grub.cfg
中的程式碼並不能使grub準確找到windows loader,所以當我們選中grub列表中的windows選項後才仍然不能引導系統。 - 我們只需進入已經可以引導的ubuntu系統,喚出終端,輸入
sudo su
回車,獲取ROOT許可權。 - 之後輸入
gedit /boot/grub/grub.cfg
回車,以開啟grub.cfg。作者用的是gedit編輯器,如果讀者平時都是用vim那麼就輸入vim /boot/grub/grub.cfg
,使用什麼編輯器都可以,然後我們找到cfg檔案中關於windows的部分,作者的看起來像這樣:
- 如果有童鞋跟作者一樣
menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' {
insmod part-msdos
insmod ntfs
set root='hd0,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 9C28EFB228EF899A
else
search --no-floppy --fs-uuid --set=root 9C28EFB228EF899A
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1
}
這一大坨是個什麼玩意?反正這麼寫引導不了,那就改!
好在grub是個十分強大的工具,最後作者決定使用search命令修改以上片段。
如下:menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' {
insmod ntfs
insmod ntldr
set root='hd0,msdos6'
search --set -f /bootmgr
ntldr /bootmgr
}
寫完大概就是這個樣子:
圖中高亮部分。
注意!!!set root='hd0,msdos6'
中的6
是因為作者的windows安裝在/sda6
中,不要照抄!! CTRL+S儲存後退出即可。
6. 重啟計算機,這時我們可以發現grub中的windows選項點選後可以成功引導了!
(Copyright © http://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
反正當時作者看到熟悉的田字格後差點流出了激動的眼淚…
7. 好了,一切恢復!enjoy!
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!希望你也加入到我們人工智慧的隊伍中來!http://www.captainbed.net