Что делать если, Linux CentOS сломал GRUB2-efi загрузчики [решение]

Некоторые пользователи RHEL 8 и CentOS 8 столкнулись с проблемами после установки вчерашнего обновления загрузчика GRUB2 с устранением критической уязвимости. Проблемы проявляются в невозможности загрузки после установки обновления, в том числе на системах без UEFI Secure Boot.

На некоторых системах (например, HPE ProLiant XL230k Gen1 без UEFI Secure Boot) проблема проявляется в том числе на свеже-установленном в минимальной конфигурации RHEL 8.2. После обновления пакетов и перезагрузки наблюдается зависание и даже не показывается меню GRUB. Похожие проблемы с загрузкой отмечаются для RHEL 7 и CentOS 7, а также для Ubuntu и Debian.



После запуска yum update на CentOS при последующей перезагрузке вас может поджидать сюрприз в виде окирпиченного сервера, который зависает на заставке биоса.

О проблеме на форумах и багтрекерах писали в июля 2020 года. Похоже, что проблема затрагивает все системы с UEFI загрузчиком и актуальна как минимум для версий CentOS 7.8 и 8.2.

Проблема проявляет себя в момент перезагрузки сервера в виде зависшего экрана с заставкой биоса, от чего сначала вообще не понятно, что происходит — ни ошибок, ни консоли grub, только зависшая заставка bios.



Решение

Если после обновления сервер не перезагружался, то чтобы не получить кирпич при последующей перезагрузке достаточно откатить обновление grub2 пакетов и их зависимостей:

yum downgrade grub2\* shim\* mokutil

Если же сервер перезагрузили и кирпич все-таки получили, то чтобы восстановить загрузчик понадобится Live-CD диск или флешка. Последовательность действий для отката пакетов на не грузящейся системе будет следующей:

  • Загрузиться с Live-CD (7 версию можно взять тут);
  • Настроить сеть;
  • Смонтировать корневой раздел в /mnt/sysimage;
  • Смонтировать раздел /boot в /mnt/sysimage/boot и раздел /boot/efi в /mnt/sysimage/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* mokutil) в файл конфигурации yum /etc/yum.conf.

Проблемные версии пакетов для CentOS 7, именно с ними ломается UEFI загрузчик:

grub2-2.02-0.86.el7.centos.x86_64

shim-x64-15-7.el7_9.x86_64

 

Источник: habr.com и opennet.ru

RuCoreNET - лучшее для вас!


Поделись статьей с друзьями


142 просмотров


4 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии


Do NOT follow this link or you will be banned from the site!
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: