La última actualización de CentOS rompe los cargadores de arranque GRUB2-efi

Después de iniciar yum updateCentOS, en un reinicio posterior, es posible que se sorprenda en forma de un servidor dañado que se cuelga en la pantalla de presentación del BIOS.



Ayer empezamos a escribir sobre el problema en foros y rastreadores de errores . Parece que el problema afecta a todos los sistemas con cargador de arranque UEFI y es relevante para al menos CentOS 7.8 y 8.2. Así que ayer por la noche no tuve la suerte de actualizar y reiniciar el servidor, asegurándome una noche de diversión.



El problema se manifiesta en el momento del reinicio del servidor en forma de una pantalla congelada con una pantalla de inicio de BIOS, desde la cual al principio no está del todo claro lo que está sucediendo: no hay errores, no hay consola grub, solo una pantalla de inicio de BIOS congelada.



Decisión



Si después de la actualización el servidor no se reinició, entonces para no obtener un ladrillo en el próximo reinicio, es suficiente revertir la actualización de los paquetes grub2 y sus dependencias:



yum downgrade grub2\* shim\* mokutil


Si el servidor se reinició y aún se recibió el ladrillo, entonces para restaurar el cargador de arranque necesitará un disco Live-CD o una unidad flash. La secuencia de acciones para revertir paquetes en un sistema que no es de arranque será la siguiente:



  • Arranque desde Live-CD (tomé la versión 7 aquí );
  • Configurar una red;
  • Monte la partición raíz en / mnt / sysimage;
  • Monte la partición / boot en / mnt / sysimage / boot y la partición / boot / efi en / mnt / sysimage / boot / efi;
  • Ejecute una secuencia de comandos:



    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


Después de eso, el cargador se actualizará a la versión anterior y el servidor debería iniciarse.



Excluir paquetes de actualizaciones



Para que el cargador de arranque no vuelva a romperse durante la próxima actualización, debe agregar los paquetes problemáticos a las excepciones (línea exclude=grub2* shim* mokutil) en el archivo de configuración de yum /etc/yum.conf.



Versiones problemáticas de paquetes para CentOS 7, es con ellos que el cargador de arranque UEFI se descompone:

grub2-2.02-0.86.el7.centos.x86_64

shim-x64-15-7.el7_9.x86_64




All Articles