問題描述:
由於在windows上進行更新/重裝/修改了引導設置以后,windows會“自私”地重寫引導,導致Ubuntu系統引導消失而無法選擇Ubuntu啟動。
Boot Repair的功能和特點:
1、簡單易用。
2、界面左下角的“advanced options”中還有許多針對grub引導菜單的高級設置。
3、這個軟件適用xp、vista、windows 7
4、適用於debian、ubuntu系列(包括Xubuntu、Kubuntu)及其衍生版本Linux mint等。
5、支持輕松修復GRUB/GRUB2引導器。
6、如果是高手的話,也可以利用Boot Repair來修復fedora、opensuse、archlinux等其他linux系統,當然,方法就不一樣了。
問題解決方法:
1.類似windows進入PE模式,我們選擇以 liveCD 的方式 進入Ubuntu系統。
(准備一個U盤,備份好數據后格式化 ,在Universal USB Installer 對U盤進行寫入)
2.BIOS中打開UEFI,GPT啟動模式。設置U盤啟動,且U盤必須為UEFI模式啟動。
(這一步比較重要,如果U盤以legacy模式啟動,會導致最終boot-repair無法修復)
3.重啟,成功以后,開機->選擇試用Try ubuntu without install。
4.打開終端,添加boot-repair源到軟件源中並安裝。
(由於liveCD中的源是外國的,建議在此之前更新到國內的源以加快速度)
sudo add-apt-repository ppa:yannubuntu/boot-repair -y
sudo apt-get update
sudo apt-get install boot-repair -y
5.運行boot-repair,通常選擇Recommend repair即可,根據提示走即可。
(如果遇到The current session is in Legacy mode. Please reboot the computer, and use this software in an EFI session. This will activate the function. For example, use a live-USB of Boot-Repair-Disk-64bit, after making sure your BIOS is set up to boot USB in EFI mode. 證明liveCD的啟動方式錯誤,應該重新選擇以UEFI模式啟動)
修復完成以后重啟會發現一大堆無關的啟動選項。
6.刪除多余的啟動項
進入我們重新恢復的Ubuntu以后,打開終端,輸入以下命令。
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg_backup #先備份一下
cat /boot/grub/grub.cfg > tmp #將內容重定向到其他文件,便於修改
sudo gedit tmp #或者vim tmp
#將下面這些內容全部刪掉(從 begin ..custom 到 end ..custom)
### BEGIN /etc/grub.d/25_custom ###
menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root 84F5-6727
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root 84F5-6727
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}
...
menuentry "Windows Boot UEFI recovery bkpbootx64.efi" {
search --fs-uuid --no-floppy --set=root 5686-D913
chainloader (${root})/efi/Boot/bkpbootx64.efi
}
### END /etc/grub.d/25_custom ###
刪掉之后再:
sudo cat tmp > /boot/grub/grub.cfg
以上。
