[bitfolk] Keep an eye on your CentOS Stream 8 grub.cfg for "…

Top Page
Author: Andy Smith
Date:  
To: users
Subject: [bitfolk] Keep an eye on your CentOS Stream 8 grub.cfg for "blscfg" being introduced

Reply to this message
gpg: Signature made Sat Jun 11 19:33:19 2022 UTC
gpg: using DSA key 0E4236CB52951E14536066222099B64CBF15490B
gpg: Good signature from "Andy Smith <andy@strugglers.net>" [unknown]
gpg: aka "Andrew James Smith <andy@strugglers.net>" [unknown]
gpg: aka "Andy Smith (UKUUG) <andy.smith@ukuug.org>" [unknown]
gpg: aka "Andy Smith (BitFolk Ltd.) <andy@bitfolk.com>" [unknown]
gpg: aka "Andy Smith (Linux User Groups UK) <andy@lug.org.uk>" [unknown]
gpg: aka "Andy Smith (Cernio Technology Cooperative) <andy.smith@cernio.com>" [unknown]
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