最新的CentOS更新打破了GRUB2-efi引导加载程序

yum updateCentOS上启动,在随后的重新启动后,您可能会以BIOS初始屏幕上挂起的损坏的服务器的形式感到惊讶。



他们昨天开始论坛 错误跟踪器撰写有关该问题的文章该问题似乎影响到所有带有UEFI Bootloader的系统,并且至少与CentOS 7.8和8.2有关。因此,昨天晚上我没有足够幸运地更新和重新启动服务器,以确保自己度过了一个愉快的夜晚。



该问题在服务器重新启动时以带有BIOS启动画面的冻结屏幕的形式显现出来,从那里开始,它根本不清楚发生了什么-没有错误,没有grub控制台,只有冻结的bios启动屏幕。



决断



如果更新后服务器未重新引导,则为了不让下次重新启动陷入困境,只需回滚grub2软件包及其依赖项的更新即可:



yum downgrade grub2\* shim\* mokutil


如果服务器重新启动并且仍然收到砖,那么要还原引导加载程序,您将需要Live CD磁盘或闪存驱动器。在不可引导的系统上回滚程序包的操作顺序如下:



  • 从Live-CD引导(我在这里使用版本7 );
  • 配置网络;
  • 将根分区挂载到/ mnt / sysimage;
  • 在/ mnt / sysimage / boot中挂载/ boot分区,在/ mnt / sysimage / boot / efi中挂载/ boot / efi分区;
  • 执行一系列命令:



    mount -o bind /dev/urandom /mnt/sysimage/dev/urandom
    echo 'nameserver 1.1.1.1' > /mnt/sysimage/etc/resolv.conf
    chroot /mnt/sysimage
    yum downgrade grub2\* shim\* mokutil


之后,加载程序将更新为旧版本,服务器应启动。



从更新中排除软件包



为了使引导加载程序在下次更新期间不会再次中断,您需要将有问题的软件包添加到exclude=grub2* shim* mokutilyum配置文件中的异常(行)中/etc/yum.conf



CentOS 7软件包的有问题的版本是UEFI引导加载程序崩溃的原因:

grub2-2.02-0.86.el7.centos.x86_64

shim-x64-15-7.el7_9.x86_64




All Articles