UEFI启动时分为两种情况
-
启动时只能选择从那个磁盘启动,如下最后两项为两个磁盘:
启动选项(选择启动磁盘)
在用户选择了启动磁盘后,UEFI会在这个磁盘中寻找EFI分区,然后找这个分区下的/EFI/Boot/bootx64.efi(UEFI可以执行的二进制文件),由这个文件进行下一步操作(引导操作系统),这个文件通常由操作系统给出,在光盘/EFI/BOOT目录下
-
UEFI中已经创建了启动项如图前两个:
启动选项(选择启动磁盘)
这个启动项记录了引导文件(*.efi)所在的磁盘和分区以及文件名,直接执行这个efi文件即可开始进行下一步操作(引导操作系统)
以下进行验证:
磁盘基本信息
![](https://img.haomeiwen.com/i3500903/40242eda2373a3ea.png)
![](https://img.haomeiwen.com/i3500903/2aba941d18330225.png)
![](https://img.haomeiwen.com/i3500903/4e513ad00554648b.png)
可见磁盘第二个分区(EFI分区)挂在在/boot/efi
中,查看:
![](https://img.haomeiwen.com/i3500903/8705d09daac91dec.png)
![](https://img.haomeiwen.com/i3500903/07776e8916dfc348.png)
开机启动项直接选择磁盘方式
注意到bootx64.efi文件,电脑启动,如果选择启动项是磁盘(比如ATA HDD0:
![](https://img.haomeiwen.com/i3500903/b69e5b0afc450779.png)
),BIOS(应该说是UEFI)会在整个磁盘寻找EFI分区,即这里的/dev/sda2(EFI System),然后在Boot目录下寻找bootx64.efi并执行,这个文件会找到需要执行的开机引导程序,比如Windows Boot Manager或Grub,然后后面的引导都交给它们处理
所以在系统安装包里的
/EFI/BOOT/
目录下会有这个文件(windows的是文件名是bootmgfw.efi
),系统安装时会将这个文件拷贝到EFI分区的Boot
目录下并改名为bootx64.efi
![](https://img.haomeiwen.com/i3500903/4215366f4591a91d.png)
Ubuntu安装时不会将bootx64.efi
复制到EFI分区的/EFI/Boot/
中,那个依然是Windows的文件,所以开机按F12选择从磁盘启动后,会进入windows boot manage
r,Ubuntu的做法是在BIOS添加一个启动项,即方法2,这个选项会调用EFI分区/EFI/Ubuntu
文件夹下面的文件(如果EFI分区里没有这个文件夹则引导失败,选择这个启动项会看起来无任何反应)。
grub.cfg指定了启动的磁盘(磁盘0分区7的uuid
、(hd0,gpt7)
挂载在root(根文件目录)),以及configuration file为/boot/grub/grub.cfg,然后根据这个配置文件grub进行系统引导,接下来就交接给grub啦~~
![](https://img.haomeiwen.com/i3500903/70eba406f708059c.png)
![](https://img.haomeiwen.com/i3500903/4fa049f5697a566f.png)
添加UEFI启动项
![](https://img.haomeiwen.com/i3500903/5ef31c0ffee5b032.jpg)
在开机进入BIOS后,在BOOT项可能会有添加启动项的选项(电脑没有这个功能,没试
╮(╯_╰)╭
),如果没有,可以使用工具efibootmgr来添加![](https://img.haomeiwen.com/i3500903/1b07adb69ebf00d5.png)
! 这里
-d
指定磁盘,-p
指定分区号(EFI分区),-c
表示创建,-L
表示名称,-l
指定有效的启动efi文件(EFI分区中的有效efi文件)![](https://img.haomeiwen.com/i3500903/4b0d683718b67343.png)
再来一个,改成普通分区
![](https://img.haomeiwen.com/i3500903/ad48e4989c7711b6.png)
再来一个,改成使用EFI分区的一个名称错误的efi文件
![](https://img.haomeiwen.com/i3500903/df09eac56aa0ecc0.png)
![](https://img.haomeiwen.com/i3500903/d3daec331d3653dc.png)
重启,每个启动项试一次,发现只有Test可以正确进入,原因是Test2的efi文件使用的是非EFI分区,Test3使用的grub.efi文件不能正确引导
应用
- 制作多系统引导
- 引导坏了可以手动进行修复
网友评论