前言
在安装最新版Arch Linux ,并搭配Grub 启动时,
在双系统上常打开Grub 的GRUB_SAVEDEFAULT功能,这样每次Grub都会默认选中上次启动的选项,方便进入系统
但是这样做无法对UKI(统一内核镜像)生效,导致使用UKI的系统(例如最新的Arch Linux ),无法被GRUB_SAVEDEFAULT记录
需要额外加入set blsuki_save_default=true!
解决方法
一般Grub 设置记忆上次启动,网上的教程都是,设置GRUB_SAVEDEFAULT功能,编辑/etc/default/grub并修改参数:
bash
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
之后运行
bash
sudo grub-mkconfig -o /boot/grub/grub.cfg
但是问题是最新的Arch Linux 使用UIK,而GRUB_DEFAULT=saved默认无法记录UKI,这里我们需要手动加入set blsuki_save_default=true参数,才可以支持!
首先找到Grub 设置UKI的配置文件,
Arch Linux 的配置在/etc/grub.d/15_uki,加入set blsuki_save_default=true参数:
bash
#! /bin/sh
set -e
cat << EOF
if [ "\$grub_platform" = "efi" ]; then
set blsuki_save_default=true
uki
fi
EOF
保存后,再运行sudo grub-mkconfig -o /boot/grub/grub.cfg,就可以实现记录UKI启动了,
重启后,也可以检查grub-editenv
bash
sudo grub-editenv /boot/grub/grubenv list
#输出 saved_entry=arch-linux.efi