Hi,
In this week's maintenance one customer VM running CentOS Stream 8
failed to boot because its /boot/grub2/grub.cfg file contained bls
commands which BitFolk's (upstream) Grub does not understand.
BLS is a Red Hat invention supported only by systemd-boot, zipl and
their own fork of Grub as far as I know. It certainly hasn't been
pushed to upstream Grub as yet. More info:
https://systemd.io/BOOT_LOADER_SPECIFICATION/
https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault
I was aware of its use in Fedora and in CentOS Stream 9 but somehow
it got enabled on the customer's CentOS Stream 8 when it previously
wasn't.
Unfortunately the VM in question has since been reinstalled so there
is no way to know how it happened. If I knew how it happened then
this would be an email to the announce@ list instead. But I don't,
so I am just warning CentOS users to keep an eye out for this,
because if your Grub configuration starts using this then your VM
won't be bootable.
To see if it is enabled, just:
$ grep bls /boot/grub2/grub.cfg
It shouldn't return anything.
I believe to turn it off you can do:
# echo "GRUB_ENABLE_BLSCFG=false" >> /etc/default/grub
# grub2-mkconfig -o /boot/grub2/grub.cfg
# grep bls /boot/grub2/grub.cfg
but I am unable to verify this as I don't know how it got enabled
or if it might get re-enabled again afterwards.
I see that the binary /usr/sbin/grub2-switch-to-blscfg does exist on
CentOS Stream 8 so that might have got called somehow.
There is some talk that installing a new kernel might do this, but
we use the kernel-ml package which comes from EPEL, and it doesn't
appear to.
I do see mentions all over that "CentOS Stream 8 uses blscfg by
default", but I am not seeing that either on an existing install or
a new one IO just did. So I don't know what went on with that VM. It
definitely did get blscfg enabled somehow.
If anyone has any more info, please do let us know.
Cheers,
Andy
--
https://bitfolk.com/ -- No-nonsense VPS hosting