yum update on CentOS and restarting the system, you might encounter an awful surprise: the computer will freeze with showing the BIOS splash screen.
There’ve been lots of talking about the issue on forums and bug-tracker websites, but the problem remains. It seems that the issue affects all systems with UEFI boot-loaders and takes place for at least two versions of CentOS, such as CentOS 7.8 and CentOS 8.2.
If you haven’t restarted the server after running update, run the following command to rollback grub2 update and its dependencies:
yum downgrade grub2\* shim\* mokutil
If you are the unlucky one who restarted the server, you will need a Live-CD or Live-USB to restore the boot-loader.
- Boot up the system from Live-CD or Live-USB
- Setup the network to have an internet connection
- mount the root partition to
- Run the following commands:
mount -o bind /dev/urandom /mnt/sysimage/dev/urandom echo 'nameserver 220.127.116.11' > /mnt/sysimage/etc/resolv.conf chroot /mnt/sysimage yum downgrade grub2\* shim\* mokutil
Once done, the boot-loader should downgrade to the previous version and your machine will boot up.
Excluding packages from future updates
To make sure the system won’t break with the next update, we have to exclude problematical packages
/etc/yum.conf config file by adding the string
exclude=grub2* shim* mokutil
Specifically to CentOS 7, the following packages brake the UEFI boot-loader: