下图只有Boot和Microsoft,若是你还装其余系统可能还会有其余的文件夹,好比你还装了Ubuntu(或者manjaro),那么会有个叫Ubuntu(manjaro)的文件夹与Boot、Microsoft并存。
Boot是计算机默认引导文件所在的目录,Microsoft是微软Windows系统引导所在的目录。
Boot目录:
Microsoft目录:
Microsoft\Boot目录:
上图中红框内的bootmgfw.efi就是windows默认的系统引导文件。html
引用:https://blog.csdn.net/lindexi_gd/article/details/50392343
计算机默认引导 -----------就是无论你的计算机有没有操做系统,定义了UEFI启动后将经过Bootx64.efi 引导你的计算机,并进入各类模式,维护、安装、计算机或者系统这里是 Bootx64.efi ,它只是一个通用名,权限丰富且大于Windows 默认,就是说若是你的Windows 默认的启动文件不在了,启动计算机默认的引导文件Bootx64.efi 也是能够启动计算机的。使用计算机默认文件随时能够在各类环境下启动计算机,EFI SHELL、ISO、Windows、Linux...均可以,通吃型.linux
Windows默认引导 -------就是你为计算机安装了操做系统,或者修复了UEFI引导后,启动菜单会有 Windows Boot Manager 选项,该选项默认从bootmgfw.efi 启动系统bootmgfw.efi 该位置的该文件只能用于启动Windows,不是通用名,权限单一windows
详细解释看原做者文章,总结来讲就是一块干净的硬盘,装上win后,此时的Bootx64.efi 极可能就是bootmgfw.efi ,我没有通过验证,可是从表面看起来是这样的,全部我说极可能是,不敢保证。若是这时候装Linux与win并存,Bootx64.efi极可能会被修改,而后Bootx64.efi会指向grub,grub再去遍历一遍整个硬盘上的全部系统引导,作一个列表供你选择是用Linux(好比Ubuntu)仍是用win。若是你选择是win那就再次转到bootmgfw.efi 去启动win,若是你选择的是Linux(好比Ubuntu)那就转到系统的引导。
再次声明:上述结论全是猜想,我没有实际测试,只是从现象来作出的推论。安全
我安装win以后又安装了Manjaro,EFI目录内容如图比起以前多了一个Manjaro的文件夹,该文件夹下只有一个grubx64.efi文件
。并且安装完manjaro以后,EFI\Boot目录下的bootx64.efi文件大小也发生了变化,且此时我开机进入的是jrub,而后在jrub中选择要开机的系统。用hash校验了一下EFI\Boot\bootx64.efi 与 EFI\Manjaro\grubx64.efi文件,结果如图
很明显这是同一个文件。再校验下安装manjaro以前的EFI\Boot\bootx64.efi文件,明显是与安装完manjaro以后不同的,以下图
这样就验证了上一小节的猜测,安装完manjaro以后,修改了系统默认(从硬盘启动)的引导,指向GRUB来管理系统引导。测试
为了更有说服力,我又作了下面的测试。
一、开机进入系统boot,修改boot顺序,默认(第一个)为硬盘启动,此时个人EFI\Boot\bootx64.efi文件实际上安装完manjaro以后的grubx64.efi。开机后进入的是grub。
二、开机进入系统boot,修改boot顺序,默认为Window boot management,开机,进入的是Windows。
三、开机进入系统boot,修改boot顺序,默认为从manjaro启动,开机后进入的是grub。
四、设置boot默认从硬盘启动,删除EFI\Boot目录下全部文件,把EFI\Manjaro\grubx64.efi 复制到EFI\Boot 重命名为bootx64.efi,开机进入的是grub
五、设置boot默认从硬盘启动,删除EFI\Boot目录下全部文件,把EFI\Microsoft\Boot\bootmgfw.efi 复制到EFI\Boot 重命名为bootx64.efi,开机进入的是windows
由以上能够获得结论:
一、在BIOS设置界面种设置boot为从硬盘启动,走的是EFI\Boot\bootx64.efi
二、在BIOS设置界面种设置boot为Window boot management,走的是EFI\Microsoft\Boot\bootmgfw.efi
三、从硬盘启动,走的是EFI\Boot\bootx64.efi,EFI\Boot\bootx64.efi指向哪一个系统就走哪一个系统(win或者Linux)。操作系统
猜想:极可能是efi\boot\bootx64.efi 文件被修改为直接引导到efi\microsoft\boot\bootmgfw.efi,致使系统不去加载grub。
猜想修复办法1:想要修复就能够再系统更新以前备份efi\boot目录,系统更新完后替换到该目录。(下面一句话适用于manjaro)可是咱们通常不多有备份系统的习惯,这时候能够就去把EFI\Manjaro\grubx64.efi文件复制并重命名成EFI\Boot\bootx64.efi。
猜想修复办法2:若是你是Ubuntu,找到boot目录下的grubx64.efi(或者shimx64.efi)复制到efi\boot目录下,并重命名为bootx64.efi。若是你是Manjaro系统就去镜像中复制BOOTX64.efi文件丢到efi\boot中。
上述猜想应该是错误的,我对比了下manjaro镜像中的BOOTX64.efi与实际安装完efi目录下的bootx64.efi文件,这两个文件并不同,再次猜想,镜像中的多是引导U盘的。目前来看修复方法1是比较靠谱的。
猜想修复办法3:使用easyUEFI添加Liunx引导,而后调整新添加的为默认项(以下图,排在最顶上)。
.net
那么Ubuntu系统下grubx64.efi和shimx64.efi有什么区别呢?
仅仅针对Ubuntu,在安全启动(serureboot)关闭的状况下,你可使用grubx64.efi。若是安全启动打开则须要选择shimx64.efi。htm
https://zhuanlan.zhihu.com/p/31365115
https://linux.cn/article-4667-1.html
https://wiki.deepin.org/wiki/Windows%E5%92%8Cdeepin%E5%8F%8C%E5%90%AF%E5%8A%A8%E7%AE%80%E5%8D%95%E5%AE%9E%E7%94%A8%E7%9A%84%E6%96%B9%E6%B3%95
https://linux.cn/article-8481-1.htmlblog