Kindly know that Atomic spins F41 onwards use a pre-supplied static GRUB config, and use the UAPI Boot Loader Spec (BLS) for defining entries.
The static grub config sources the adjacent user.cfg
file though, for things like timeouts etc…
Although /etc/default/grub
and grub2-mkconfig
(/etc/grub.d
) are still supported, they overwrite the static config. This will not be supported.
I have tried grub2-mkconfig -o $(bootctl -x)/grub2/user.cfg
, but this severely breaks the GRUB menu to a much worse condition, for some reason.
You need to handpick what you want, into user.cfg
.
It is a lot of trial and error… sometimes unexpectedly you might need to insmod
some module into GRUB (This is differnt from the insmod
to load kernel modules; This is a GRUB built-in)
The UAPI Boot Loader Spec (BLS) specifies a simple declarative format for boot entries, to be same across bootloaders, therefore the entries created for GRUB will work out of the box with systemd-boot
too…
systemd-boot
has a cleaner and more basic theme on boot, (anyhow GRUB doesn’t support theming now), has a easier-to-edit configuration file for things like timeouts and all…
And it is better documented than GRUB… everything is detailed in the manpages… and I’m always here to help.
As for the dualboot thing, systemd-boot
auto-detects windows without any complex os-prober
configuration.
So, systemd-boot
is the right bootloader for Atomic desktops…
If you don’t want to deviate from GRUB for whatever reason, DON’T USE os-prober.
DON’T USE grub2-mkconfig
DON’T USE /etc/default/grub
or /etc/grub.d
.\
Use the BLS config files, to chainload the windows bootmanager EFI executable.
Under $(bootctl -x)/loader/entries
the BLS files exist. systemd-boot
has it well documented, and you might like to ask here if you have doubts.
Personally I recommend to use systemd-boot
(most probably included in the systemd
package)
NOTE: $(bootctl -x)
is mostly /boot
, but don’t assume that if you have done an advanced install with different paths…