选中内容(绿色)时除了会搜索文章名,还会搜索文章内容
点击结果中的文章名进入文章界面后可以按Ctrl+F在页面内搜索
  • 版权:CC BY-SA 4.0
  • 创建:2019-10-13
  • 更新:2019-10-19
UEFI启动项编辑


UEFI启动时分为两种情况

  1. 启动时只能选择从那个磁盘启动,如下最后两项为两个磁盘:
    启动选项(选择启动磁盘)
    在用户选择了启动磁盘后,UEFI会在这个磁盘中寻找EFI分区,然后找这个分区下的/EFI/Boot/bootx64.efi(UEFI可以执行的二进制文件),由这个文件进行下一步操作(引导操作系统),这个文件通常由操作系统给出,在光盘/EFI/BOOT目录下
  2. UEFI中已经创建了启动项如图前两个:
    启动选项(选择启动磁盘)
    这个启动项记录了引导文件(*.efi)所在的磁盘和分区以及文件名,直接执行这个efi文件即可开始进行下一步操作(引导操作系统)

以下进行验证:

磁盘基本信息

磁盘信息

磁盘信息

block ID

可见磁盘第二个分区(EFI分区)挂在在/boot/efi中,查看:

/boot/efi/

/boot/efi/EFI/Microsoft/

开机启动项直接选择磁盘方式

注意到bootx64.efi文件,电脑启动,如果选择启动项是磁盘(比如ATA HDD0:
启动选项(选择启动磁盘)
),BIOS(应该说是UEFI)会在整个磁盘寻找EFI分区,即这里的/dev/sda2(EFI System),然后在Boot目录下寻找bootx64.efi并执行,这个文件会找到需要执行的开机引导程序,比如Windows Boot Manager或Grub,然后后面的引导都交给它们处理
所以在系统安装包里的/EFI/BOOT/目录下会有这个文件(windows的是文件名是bootmgfw.efi),系统安装时会将这个文件拷贝到EFI分区的Boot目录下并改名为bootx64.efi
Boot下的bootx64.efi就是Windows的bootmgfw.efi文件

Ubuntu安装时不会将bootx64.efi复制到EFI分区的/EFI/Boot/中,那个依然是Windows的文件,所以开机按F12选择从磁盘启动后,会进入windows boot manager,Ubuntu的做法是在BIOS添加一个启动项,即方法2,这个选项会调用EFI分区/EFI/Ubuntu文件夹下面的文件(如果EFI分区里没有这个文件夹则引导失败,选择这个启动项会看起来无任何反应)。
grub.cfg指定了启动的磁盘(磁盘0分区7的uuid(hd0,gpt7)挂载在root(根文件目录)),以及configuration file为/boot/grub/grub.cfg,然后根据这个配置文件grub进行系统引导,接下来就交接给grub啦~~
/boot/grub/
grub.cfg

添加UEFI启动项

UEFI启动项
在开机进入BIOS后,在BOOT项可能会有添加启动项的选项(电脑没有这个功能,没试╮(╯_╰)╭),如果没有,可以使用工具efibootmgr来添加
efi添加启动项
! 这里-d指定磁盘,-p指定分区号(EFI分区),-c表示创建,-L表示名称,-l指定有效的启动efi文件(EFI分区中的有效efi文件)
将elf文件放到EFI分区中

再来一个,改成普通分区
Paste_Image.png

再来一个,改成使用EFI分区的一个名称错误的efi文件
EFI分区elf文件

efi信息
重启,每个启动项试一次,发现只有Test可以正确进入,原因是Test2的efi文件使用的是非EFI分区,Test3使用的grub.efi文件不能正确引导

应用

  • 制作多系统引导
  • 引导坏了可以手动进行修复

参考

https://www.zhihu.com/question/22502670

文章有误?有想法想讨论?查看或者发起勘误/讨论 主题
(发起评论需要先登录 github)

/wallpaper/wallhaven-39155y.jpg