linux fedora35让GRUB 2记住上一次启动的操作系统


修改符号链接/boot/grub2/grubenv

Wiki上说对于Fedora 20以上的要修改/boot/grub2/grubenv使其以相对路径指向../efi/EFI/fedora/grubenv(原文:The /boot/grub2/grubenv is symbolic linked to /boot/efi/EFI/fedora/grubenv but /boot is not mounted at the time of booting. So grub2 does not have access to the environment variables. To fix this, change /boot/grub2/grubenv to point to ../efi/EFI/fedora/grubenv instead and your chosen default OS will boot without any problems.)才能奏效,我并没有尝试如果不修改此符号链接是否能成功。读者如果有兴趣的话可以尝试不修改此符号链接,直接跳到下一步。

cd /boot/grub2
rm grubenv
ln -s ../efi/EFI/fedora/grubenv grubenv
修改/etc/default/grub

原来的/etc/default/grub看起来可能是这样的:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

加入一行

GRUB_SAVEDEFAULT=true
生成新的配置文件

BIOS机器上:

grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI机器上:

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg