Hublog随手记录一些东西

UEFI引导和启动项

EFI系统分区

UEFI规范里,在GPT分区表的基础上,规定了一个EFI系统分区(EFI System Partition,ESP),ESP要格式化成FAT32,EFI启动文件要放在\EFI\<厂商>文件夹下面。

比如Windows的UEFI启动文件,都在“\EFI\Microsoft”下面。 比如Clover的东西,全都放在“\EFI\Clover”下面。

文件启动项

文件启动项,大约记录的是某个磁盘的某个分区的某个路径下的某个文件。UEFI的文件启动项的配置信息跟UEFI固件设置存放在一起。

Windows 引导文件

在EFI系统中,Windows引导文件通常存储在EFI系统分区的 EFI\Microsoft\Boot 目录中,文件名为 bootmgfw.efi

Linux 引导文件:

debian 的引导文件为 EFI\debian\shimx64.efi 或者EFI/debian/grubx64.efi

  • shimx64.efi 是一个预引导加载程序,用于验证并加载 GRUB (grubx64.efi),启动时会读取 /boot/grub/grub.cfg 中的配置文件。
  • grubx64.efi 通过读取 GRUB 配置文件(通常位于 /boot/grub/grub.cfg)来加载系统。配置文件的内容由 /etc/grub.d 中的脚本和配置片段生成。

shimx64.efi 是一个相对简单的程序,它提供了一种在安全启动(Secure Boot)开启的状态下使用的方法。

安全启动(Secure Boot)开启的状态下,未签名的 GRUB 版本(grubx64.efi)将无法启动,因此 shim 弥补了缺陷并添加了自己的安全工具,与 安全启动(Secure Boot) 类似。

实际上,shim 会在固件中注册自己,然后在它的目录中启动一个名为 grubx64.efi 的程序,在没有启用 安全启动(Secure Boot) 的计算机中,启动 shimx64.efi 和启动 grubx64.efi是一样的。

设备启动项

设备启动项,大约记录的就是“某个U盘”、“某个硬盘”。(此处只讨论U盘、硬盘)对于设备启动项,UEFI标准规定了默认的路径 \EFI\Boot\bootX64.efi。UEFI会加载磁盘上的这个文件。文件不存在则失败。

\EFI\Boot 这个文件夹。这个文件夹,放谁家的程序都行。无论是“\EFI\Microsoft\Boot\Bootmgfw.efi”,还是 \EFI\Clover\CloverX64.efi,只要放到**\EFI\Boot下并且改名bootX64.efi**,就能在没添加文件启动项的情况下,默认加载对应的系统。

参考:

Linux中GRUBX64.EFI和SHIMX64.EFI有什么区别?_使用grubx64.efi还是shimx64.efi-CSDN博客

科普贴:BIOS和UEFI的启动项 - 知乎 (zhihu.com)

0%