求助,如何在uefi win8下引导进入已经安装好的ubuntu
1个回答
推荐于2016-07-03
展开全部
现在的新机子大多是这种情况,按照网上说的easybcd的方法硬盘安装会提示错误,原因是efi win8的引导程序boomgfw.efi只支持EFI文件,而easybcd添加的是.mbr文件,win8引导程序无法加载。(此为我的猜测,欢迎大家批评指正。)所以还是推荐U盘安装的方法。
开机时在BIOS里设置U盘启动,启动方式为legacy first,或者开机时按F12(我的是联想Y400),直接进入启动菜单,选择U盘启动。
安装时,无需单独分出/boot分区,因为12.04支持EFI模式,选择将引导程序,即grub2,安装在电脑的EFI分区,其他一切与以前的安装过程一样。而EFI分区在哪里呢?一个简单的方法,是在Dash中搜索GParted,打开,看哪个分区的标志里写着boot,哪个分区就是EFI分区。我们可以将这个分区挂载上,查看里面的内容,比如我的EFI分区是/dev/sda2
mkdir ~/efi
sudo mount /dev/sda2 ~/efi
一般情况下,~/efi会 有两个文件夹,BOOT和EFI
而~/efi/EFI/BOOT/bootx64.efi将引导~/efiEFI/Microsoft/boot/boomgfw.efi,进而引导win8系统。
ubuntu安装好后,/efi 将出现第三个文件夹,ubuntu,里面的grubx64.efi就是grub的引导程序了。
安装好候,重启,将进入grub界面,此时能进入ubuntu,但是选择菜单里的windows系统时将提示错误, 大意是grub的os-prober还不支持EFI,所以生成了一个错误的win8入口。解决方法是
sudo vim /etc/grub.d/40_custom
在底部添加如下代码
menuentry "Microsoft Windows x86_64 UEFI-GPT"(名字可以随意改) {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
set root='(hd0,gpt2)'(这个还是EFI分区,之前的sda2对应现在的gpt2)
chainloader /efi/Boot/bootx64.efi
}
最后再sudo grub-update一下
好了,重起电脑,现在是不是可以了呢
开机时在BIOS里设置U盘启动,启动方式为legacy first,或者开机时按F12(我的是联想Y400),直接进入启动菜单,选择U盘启动。
安装时,无需单独分出/boot分区,因为12.04支持EFI模式,选择将引导程序,即grub2,安装在电脑的EFI分区,其他一切与以前的安装过程一样。而EFI分区在哪里呢?一个简单的方法,是在Dash中搜索GParted,打开,看哪个分区的标志里写着boot,哪个分区就是EFI分区。我们可以将这个分区挂载上,查看里面的内容,比如我的EFI分区是/dev/sda2
mkdir ~/efi
sudo mount /dev/sda2 ~/efi
一般情况下,~/efi会 有两个文件夹,BOOT和EFI
而~/efi/EFI/BOOT/bootx64.efi将引导~/efiEFI/Microsoft/boot/boomgfw.efi,进而引导win8系统。
ubuntu安装好后,/efi 将出现第三个文件夹,ubuntu,里面的grubx64.efi就是grub的引导程序了。
安装好候,重启,将进入grub界面,此时能进入ubuntu,但是选择菜单里的windows系统时将提示错误, 大意是grub的os-prober还不支持EFI,所以生成了一个错误的win8入口。解决方法是
sudo vim /etc/grub.d/40_custom
在底部添加如下代码
menuentry "Microsoft Windows x86_64 UEFI-GPT"(名字可以随意改) {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
set root='(hd0,gpt2)'(这个还是EFI分区,之前的sda2对应现在的gpt2)
chainloader /efi/Boot/bootx64.efi
}
最后再sudo grub-update一下
好了,重起电脑,现在是不是可以了呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询