Após iniciar o yum update
CentOS, em uma reinicialização subsequente, você pode ter uma surpresa na forma de um servidor corrompido que trava na tela inicial do BIOS.
Começamos a escrever sobre o problema em fóruns e rastreadores de bugs ontem. Parece que o problema afeta todos os sistemas com um bootloader UEFI e é relevante para pelo menos CentOS 7.8 e 8.2. Então, ontem à noite não tive a sorte de atualizar e reiniciar o servidor, garantindo uma noite de diversão.
O problema se manifesta no momento da reinicialização do servidor na forma de uma tela congelada com uma tela inicial do BIOS, a partir da qual a princípio não fica claro o que está acontecendo - sem erros, sem console grub, apenas uma tela inicial congelada do BIOS.
Decisão
Se após a atualização o servidor não reinicializar, então para não obter um tijolo na próxima reinicialização, é suficiente reverter a atualização dos pacotes grub2 e suas dependências:
yum downgrade grub2\* shim\* mokutil
Se o servidor foi reinicializado e o bloco ainda foi recebido, para restaurar o bootloader, você precisará de um disco Live-CD ou uma unidade flash. A sequência de ações para reverter pacotes em um sistema não inicializável será a seguinte:
- Boot from Live-CD (peguei a versão 7 aqui );
- Configure uma rede;
- Monte a partição raiz em / mnt / sysimage;
- Monte a partição / boot em / mnt / sysimage / boot e a partição / boot / efi em / mnt / sysimage / boot / efi;
- Execute uma sequência 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
Depois disso, o carregador será atualizado para a versão anterior e o servidor deverá inicializar.
Excluindo pacotes de atualizações
Para evitar que o carregador de inicialização falhe novamente durante a próxima atualização, você precisa adicionar os pacotes problemáticos às exceções (linha exclude=grub2* shim* mokutil
) no arquivo de configuração yum /etc/yum.conf
.
Versões problemáticas de pacotes para CentOS 7, é com elas que o bootloader UEFI quebra:
grub2-2.02-0.86.el7.centos.x86_64
shim-x64-15-7.el7_9.x86_64