操作步骤
1、挂载esp分区
2、在挂载目录下新建文件夹/EFI/Manjaro
3、将boot目录下的文件拷贝到Manjaro文件夹,主要是vmlinuxz内核和initramfs
4、打开终端执行下面的命令
sudo efibootmgr -d /dev/nvme0n1 -p 1 -c -L "Manjaro" -l \EFI\Manjaro\vmlinuz-6.9-x86_64 -u "root=/dev/nvme0n1p5 rw initrd=/EFI/Manjaro/initramfs-6.9-x86_64.img"
-d:efi所在的磁盘,不是分区哦
-p:这个才是分区,通常是1,基本上esp都是第一个分区
-c:创建一个新项
-L:efi启动项名称
-l:加载项的路径,即linux内核路径
-u:给内核传参,unicode编码,root表示“/”挂载点所在分区
5、然后再次执行efibootmgr即可看到添加的项
6、efibootmgr -o可以调整efi启动项排序
关于无法更新内核的问题
如果系统升级时更新了内核,那么esp分区中的内核不会被更新,还需要手动将boot目录中的内核重新拷贝到/EFI/Manjaro目录中,稍显麻烦。
处理办法就是把esp分区挂载到一个目录,然后再将挂载目录/EFI/Manjaro挂载到/boot目录
fstab文件实现如下
参考文章和资料
https://wiki.archlinux.org/title/EFISTUB#efibootmgr
https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface#efibootmgr