天天看點

win10 + Ubuntu16.04雙系統修複linux grub引導丢失1. 安裝雙系統2. 引導修複

  • 安裝雙系統
  • 引導修複
    • 1 在Ubuntu中将引導記錄寫入 boot
    • 2 一波三折grub中的win10啟動項又丢了

1. 安裝雙系統

win10 + Ubuntu16.04 雙系統安裝流程:

  1. 首先安裝windows10;
  2. 安裝Ubuntu16.04 ,注意boot loader 選擇和win10的引導目錄;
  3. grub引導丢失:

    問題描述:

st=>start: Win10安裝完畢
while:
op1=>operation: 當Ubuntu系統安裝完畢之後,重新開機電腦 
op2=>operation: 重新開機電腦 順利進入grub引導
op3=>operation: 重新開機電腦  選擇進入Windows10
ex=>exception: 順利開機之後重新開機電腦 然後問題來了:“grub引導界面不見了,竟然直接打開win10”。
if exception solved:
    break
else:
    continue
e=>end: 結束
           

進入BIOS之後,發現Boot Order中的Ubuntu不見了,隻剩下一個Windows Boot Manager(WBM)。上面的循環,進行了好幾次(汗)。

我這個桌上型電腦是惠普的,Product No. QV9999AV, BIOS版本是(K01,V02.90)

這個版本的BIOS很奇怪哦,跟别人的不太一樣,好幾個别人解決問題的功能(比如,選擇檔案添加EFI啟動項)他都沒有,略顯寒酸。還有一點要說明的是,我的硬碟分區表是GPT格式的,引導方式是EFI,不是MBR分區,不能用Legacy引導。是以不能用EasyBCD從在WBM中添加grub,因為EasyECD針對linux的引導方式是legacy的。

(這隻在這一種情況下适用,其他情況自行嘗試)

2. 引導修複

這個主機闆的BIOS有一個功能可以從安裝的引導目錄中選取一個efi引導檔案進行啟動。

這樣就可以把linux順利找回來了。哈哈,當然沒有這麼簡單。在進入一次win10,再一次丢引導是分分鐘的事。

曆經千辛萬苦找到了解決方案:

2.1. 在Ubuntu中将引導記錄寫入 boot

這樣比在Windows中好操作,就是好操作,不解釋。

$ sudo efibootmgr -c -d /dev/sda/ -p  -L Ubuntu -l /EFI/ubuntu/grubx64.efi
           

-d /dev/sda -p 1 :表示的是引導分區所在的盤,我的是sda1, 可以通過fdisk檢視

-L Ubuntu :要添加的引導記錄的名字,這裡寫成Ubuntu

-l /EFI/ubuntu/grubx64.efi: 引導程式的location,linux一般使用grubx64.efi

這樣就順利在BIOS中添加了一條引導記錄。YEAH!完成!

檢視現有的啟動項:

修改啟動項的順序,即Boot Order

2.2. 一波三折,grub中的win10啟動項又丢了!

千辛萬苦找回了Ubuntu的入口grub,一不小心,不知道怎麼,又把grub中的win10給丢了。

在grub中添加win10的啟動項

$ sudo grub-install /dev/sda1
$ cd /etc/grub.d/
$ gedit _custom #在檔案中加入下面的内容
$ sudo update-grub #更新設定
[email protected]:/home/like# cat /etc/grub.d/40_custom 
#!/bin/sh
exec tail -n + $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 10" {
   set root='(hd0,1)' # 同樣的這裡的 (hd0,1)也表示引導分區所在的盤符
   chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
} 
           

重新開機可以看到新加入的win10啟動項。

繼續閱讀