前情提要
上一篇 Archboot 实现 Secure Boot 自动配置的办法,觉得还是不够简单,而且我现在也不需要通过 Grub 引导 Windows 和其他系统,遂有本文。
正文
在现有系统上抛弃Grub,拥抱统一内核映像(UKI)并启用 Secure Boot
我所使用的内核为
linux-zen,下面的配置请注意修改
修改内核命令行参数
创建/etc/kernel/cmdline如下:
1 | root=UUID=系统的分区UUID rw splash loglevel=3 |
注:Btrfs分区可能需要添加 rootflags=subvol=XXX 的挂载参数,可以在grub生成的文件中寻找
修改 mkinitcpio 预设
编辑/etc/mkinitcpio.d/linux-zen.preset,取消 “PRESET_image=XXX” “PRESET_uki=XXX”的注释,并且修改存储位置,保存到 EFI 分区内
1 | mkinitcpio preset file for the 'linux-zen' package |
构建 UKI
确保 EFI 目录已挂载,运行:
1 | mkdir -p EFI_MOUNT_POINT/EFI/Linux |
添加引导
遵循一切从简的理念,使用 efibootmgr 添加引导
1 | efibootmgr --create \ |
签名 UKI
如果此时已经配置好
sbctl和 Secure Boot,可直接通过sbctl sign -s /EFI_MOUNT_POINT/EFI/Linux/arch-linux-zen.efi结束本文至此,您可以抛弃 Grub 了,享受快人一步的开机😏
通过以下命令删除不再使用的自动签名
1 | sbctl remove-file /boot/grub/x86_64-efi/grub.efi |
如果还没有安装
sbctl,请继续阅读
设置 Secure Boot
进入设备 BIOS,将 Secure Boot 进入设置模式 Setup Mode
进入Archlinux,安装 sbctl 包,运行
1 | sbctl enroll-keys -m |
重启至 BIOS 开启 Secure Boot
至此,UKI + sbctl 最简单 Secure Boot 设置就大功告成了