安装win10
安装win10过程中,系统自动建立esp分区,分区格式为FAT16,目录如下
1,EFI/Boot文件夹保持不动
删除 EFI/Microsoft/boot/ 文件夹下面除BCD文件外的其它文件,系统不能启动;
复制原本EFI/Microsoft/boot/文件夹下面的bootmgfw.efi文件进去,即EFI/Microsoft/boot文件夹下面有两个文件,BCD和bootmgfw.efi,系统可以启动。
2,在1的基础上,即保留Microsoft/boot/文件夹下面的BCD和bootbgfw.efi文件,删除EFI/Boot/bootx64.efi文件,重启正常进系统。
安装centos7
安装centos7,会强制你挂载/boot/efi分区,类似安装win10的ESP分区。因我先安装的win10,后安装centos7,所以有两个ESP分区,win10的ESP分区有前面,centos7的ESP分区在后面。当win10的ESP分区不能启动时,硬盘从centos7的ESP分区进centos7系统。
efi引导顺序修改测试
为了方便,复制centos7的ESP分区下的EFI/centos/文件夹到 windows的ESP分区EFI/目录
EFI/centos/目录:
EFI/Microsoft/目录
BOOTICE软件的UEFI启动项管理,可以修改uefi的启动顺序
点击‘修改启动序列’,
点击添加,找到上面提到的ESP分区的EFI/centos7/shimx64.efi(需要将ESP分区挂载出来),可以选择它们的先后顺序实现开机启动windows还是Centos7。
这个应该是直接修改的主板的rom存储(需要bios电池供电的那个存储),和MBR模式修改启动顺序应该一样)
开机进bios,也可以修改这个启动顺序。
纯UEFI模式
最下面的'UEFI Hard Disk Drive BBs Priorities'就是修改UEFI启动顺序,和上面用软件修改的效果是一样的。
进入之后
将centos7的选项调到最上面
再返回,可以看到‘Boot Option #3’选项已经变成 centos7
之后开机就可以直接进centos7系统。
总结 :
- win10 efi启动只需要esp分区中的bootmgfw.efi和BCD两个文件即可。
- efi引导顺序的信息存储在主板rom存储器中(主板小电池供电那个),引导顺序可以进bios修改,也可以用bootice软件直接修改。
后续小测试:
BOOTICE软件,还有BCD编辑功能,BCD文件是windows启动时bootmgfw.efi读取的开机启动项目文件,是在上面说的修改UEFI启动顺序为windows之后都会读取的一个文件,是一个注册表文件,
点击‘智能编辑模式’,第一项默认的是windows的启动,可以看到启动文件在windowssystem32winload.efi,即开机之后读取ESP分区的EFI/Microsoft/bootmgfw.efi文件,bootmgfw.efi文件指向同目录下的BCD文件,BCD是一个配置文件,存储有windows系统启动文件的信息,(多系统启动,比如win7、win10,选择启动顺序界面即读取BCD文件中存储的信息),BCD文件第一个默认项“Windows…"指向“windowssystem32winload.efi”,之后 由winload.efi加载windows内核,完成启动过程。
试验:
添加一个centos7的启动项
由于windows不能识别centos7的ext分区,所以启动文件没法指向centos7的启动文件。但保存之后,开机会显示该项目,但无法启动。
选择该项目,显示