问题描述:
双系统安装十分顺利,我是先装Windows再装Ubuntu,成功后开机可以看到Grub引导程序,看似已经成功但是进入Windows后再开机就看不见Grub引导程序,无论是你重启还是关机。重装Ubuntu发现一到安装grub-install时就fatal error,很多网上的解决方法几乎没用,自己摸索了下终于是解决了。
查阅了一些资料,首先确定两点:
1、Ubuntu在11.0后便已经支持UEFI启动
2、新版本的Ubuntu在Secure Boot开启的情况下也可以进入,但是最好把这关掉
原因分析:
UEFI启动时需要有一个ESP分区(EFI 系统分区),这个分区的EFI目录下有三个目录(安装Ubuntu后),一个是BOOT目录,一个是Microsoft目录还有一个是Ubuntu目录。在windows下通过mountvol挂载ESP分区,就能看到此分区内容。UEFI方式时会找到BOOT目录下的bootx64.efi启动文件并运行。而Microsoft目录下有一个bootmgfw.efi,对比发现这两文件一样的,也就是说UEFI找到的bootx64.efi就是Microsoft下的efi文件,也就直接启动了windows而忽略了ubuntu。那ubuntu目录下有什么?cd后提示文件已损坏,无法在这里创建和拷贝文件,这就是ubuntu重装时一到grub-install就失败的原因,这片区域早已损坏!efi启动文件都找不到了,哪里还能启动grub?