在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