EFI目录

下图只有Boot和Microsoft,如果你还装其他系统可能还会有其他的文件夹,比如你还装了Ubuntu(或者manjaro),那么会有个叫Ubuntu(manjaro)的文件夹与Boot、Microsoft并存。

Boot是计算机默认引导文件所在的目录,Microsoft是微软Windows系统引导所在的目录。
Boot目录:

Microsoft目录:

Microsoft\Boot目录:

上图中红框内的bootmgfw.efi就是windows默认的系统引导文件。

几个引导文件的说明

引用:https://blog.csdn.net/lindexi_gd/article/details/50392343
计算机默认引导 -----------就是不管你的计算机有没有操作系统,定义了UEFI启动后将通过Bootx64.efi 引导你的计算机,并进入各种模式,维护、安装、计算机或者系统这里是 Bootx64.efi ,它只是一个通用名,权限丰富且大于Windows 默认,就是说如果你的Windows 默认的启动文件不在了,启动计算机默认的引导文件Bootx64.efi 也是可以启动计算机的。使用计算机默认文件随时可以在各种环境下启动计算机,EFI SHELL、ISO、Windows、Linux...都可以,通吃型.

Windows默认引导 -------就是你为计算机安装了操作系统,或者修复了UEFI引导后,启动菜单会有 Windows Boot Manager 选项,该选项默认从bootmgfw.efi 启动系统bootmgfw.efi 该位置的该文件只能用于启动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来管理系统引导。

为了更有说服力,我又做了下面的测试。
1、开机进入系统boot,修改boot顺序,默认(第一个)为硬盘启动,此时我的EFI\Boot\bootx64.efi文件实际上安装完manjaro之后的grubx64.efi。开机后进入的是grub。
2、开机进入系统boot,修改boot顺序,默认为Window boot management,开机,进入的是Windows。
3、开机进入系统boot,修改boot顺序,默认为从manjaro启动,开机后进入的是grub。
4、设置boot默认从硬盘启动,删除EFI\Boot目录下所有文件,把EFI\Manjaro\grubx64.efi 复制到EFI\Boot 重命名为bootx64.efi,开机进入的是grub
5、设置boot默认从硬盘启动,删除EFI\Boot目录下所有文件,把EFI\Microsoft\Boot\bootmgfw.efi 复制到EFI\Boot 重命名为bootx64.efi,开机进入的是windows
由以上可以得到结论:
1、在BIOS设置界面种设置boot为从硬盘启动,走的是EFI\Boot\bootx64.efi
2、在BIOS设置界面种设置boot为Window boot management,走的是EFI\Microsoft\Boot\bootmgfw.efi
3、从硬盘启动,走的是EFI\Boot\bootx64.efi,EFI\Boot\bootx64.efi指向哪个系统就走哪个系统(win或者Linux)。

win10系统功能性更新后丢失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引导,然后调整新添加的为默认项(如下图,排在最顶上)。

那么Ubuntu系统下grubx64.efi和shimx64.efi有什么区别呢?
仅仅针对Ubuntu,在安全启动(serureboot)关闭的情况下,你可以使用grubx64.efi。如果安全启动打开则需要选择shimx64.efi。

一些很好的贴子

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.html

EFI系统引导的一些零碎知识点的更多相关文章

  1. 删除EFI系统分区(ESP)后Windows无法启动,重建引导分区并修复启动的过程

    @ 目录 一.开机故障描述 二.工具: 三.什么是EFI系统分区 四.如何查看EFI系统分区 五.删除后如何重建系统分区 1.建立未分配空间 2.建立ESP分区 3.按下图,ESP分区的大小200M即 ...

  2. IBM X3850 Windows 无法安装到这个磁盘。选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘

    以前安装的是window2003 32位, 改装为2012 64位的时候.出现 Windows 无法安装到这个磁盘.选中的磁盘具有MBR分区表.在 EFI 系统上,Windows 只能安装到 GPT ...

  3. 教程 打造OS X Mavericks原版 EFI Clover 引导安装

    自从 Mavericks 10.9 发布DP版到现在的GM版以来,以前Clover引导原版InstallESD.dmg方式安装原版的方法已经不能使用,而且已经不能引导安装了,所以从GM版发布以前,终于 ...

  4. 9.Linux系统引导流程

    一.Linux系统引导流程 当我们按下主机电源键的那时候开始,主板上的CMOS/BIOS模块将进行固件自检,以此检查各个硬件是否正确连接. 在Linux引导流程中,一般可以分为以下几个主要过程: 1. ...

  5. 安装grub到U盘分区,实现多系统引导

    目录 1.分区工具及分区类型 1.1 显示分区表和分区信息 1.1.1 fdisk -l 1.1.2 gdisk -l 1.1.3 parted -l 1.2 常见分区类型 1.3 分区样例 1.3. ...

  6. 使用 boot-repair 对 Windows + Ubuntu 双系统引导修复

    问题描述:     由于在windows上进行更新/重装/修改了引导设置以后,windows会“自私”地重写引导,导致Ubuntu系统引导消失而无法选择Ubuntu启动.

  7. 001_关于选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘。问题解决

    问题: 今天我的diy电脑重装系统时,遇到了一个棘手的问题.在选择安装分区的时候,提示有这样的错误. Windows 无法安装到这个磁盘.选中的磁盘具有MBR分区表.在 EFI 系统上,Windows ...

  8. EFI系统分区如何删除

    U盘或者硬盘被做了系统安装盘. 结果在格式化都是失败,分区也不行. 有了新招 EFI分区是您的系统启动引导的分区,存放引导启动的文件的,因此它是一个操作系统独立的分区,实际上它是UEFI加载的固件和应 ...

  9. Win7&Ubuntu12.04 双系统引导问题

    周末的时候手贱,重装系统,导致原来的ubuntu12.04和win7双系统的引导不见了,所以在此进行一下说明,如何修复. 1. win7和ubuntu12.04双系统引导修复 问题描述:    在重装 ...

随机推荐

  1. Linux(CentOs 7)系统重装笔记(二)---完全删除用户账号和root用户登录

    参考网址:https://jingyan.baidu.com/article/046a7b3ede1c38f9c27fa91b.html 一.完全删除用户 1.查看要删除的用户账号信息 find / ...

  2. linux系统执行mysql脚本:Can't connect to local MySQL server through socket '/tmp/mysql.sock'

    问题原因:系统找不到临时文件夹下的.sock文件了 解决办法:看一下是不是其他目录下有mysl的.sock文件,使用命令指定到该文件 mysql --socket=/home/mysql/mysql- ...

  3. 安卓demo

    https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/README-CN.md

  4. windows下安装Mongodb的方法

    参考:https://blog.csdn.net/heshushun/article/details/77776706

  5. 小白用阿里云搭载wordpress个人博客

    阿里云服务已经购买多时,却一直没时间部署内容,借着这次机会自己照着博客园园友的方式用wordpress搭建了个人博客! 创建wordpress的内容就不多说了,直接附链接来源:https://www. ...

  6. python学习笔记1-基础知识

    # 0.输入输出 # print数值型直接输出计算结果 pirnt( + ) # 输出 + = # input输入(可在括号内加提示语句) name = input('please enter you ...

  7. 常用邮箱POP3 STMP服务器与端口号设置

    一.常用邮箱POP3 STMP服务器与端口号设置: [网易 163.126免费邮箱目前不直接开放smtp.pop3服务.有需要的用户可通过购买随身邮或邮箱伴侣及加入会员中心获得.从2006年11月16 ...

  8. office word memo

    显示左侧目录树 office 和 wps 的差异 wps 的版本:视窗 ->文档结构图 office 的版本: 视图 ->导航窗格

  9. python小程序打包

    1.首先先要安装 pip install pywin32 pip install pyinstaller 没有越狱安装不了加个国内镜像地址: pip install pyinstaller -i ht ...

  10. linux ping: unknown host www.baidu.com

    在虚拟机中使用CentOS6.5时,ping www.baidu.com出现报错信息:“ping: unknown hostwww.baidu.com”,虚拟机和物理机网络连接是NAT方式,物理机访问 ...