统一内核映像是单个可执行文件,可以直接从 UEFI 固件启动,或者由引导加载程序自动获取,只需很少或没有配置。

准备 Grub 配置文件

此配置文件和普通 Grub 配置文件一样,一下只是适配我电脑的配置,默认情况下 Grub 的 root 为 (memdisk).

~/SecureBoot/grub.cfg
-----
menuentry 'Gentoo' --class gentoo --class gnu-linux --class gnu --class os{
    insmod all_video
    linux /vmlinuz root=/dev/sda1
    initrd /initramfs.img
}

构建 EFI 文件

使用 grub-mkstandalone 构建单一的内核映像, 将命令中的 vmlinuz-5.15.41-gentoo 以及 iniramfs-5.14.41-gentoo 替换为自己的内核及 initramfs.

grub-mkstandalone --direcotry /usr/lib/grub/x86_64-efi --format x86_64-efi --disable-shim-lock --output grub.efi /vmlinuz=/boot/vmlinuz-5.15.41-gentoo /initramfs.img=/boot/initramfs-5.14.41-gentoo /boot/grub/grub.cfg=~/SecureBoot/grub.cfg

签名 EFI 文件 (可选)

如果使用了安全启动,可以对 EFI 文件进行签名.

sbsign --key ~/keys/db.key --cert ~/keys/db.crt --output grub.efi grub.efi

安装 EFI 文件

将生成的 grub.efi 复制到 ESP 目录下. 默认情况下可以复制到 esp/EFI/BOOT/BOOTX64.EFI