Последнее обновление CentOS ломает GRUB2-efi загрузчики

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


    О проблеме на форумах и багтрекерах начали писать вчера. Похоже, что проблема затрагивает все системы с 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

    Средняя зарплата в IT

    120 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 6 212 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 10

        +3
        не только efi и centos, у меня вчера обычный на убунте сломался со странной ошибкой
        symbol `grub_calloc' not found
        починил, загрузившись в mate live-cd и установив boot-repair
          +1

          И не только на Ubuntu, видел похожее уже на нескольких других Debian-based дистрах. Похоже, проблема куда шире распространилась, чем кажется. Они так торопились залатать уязвимость(которая для большинства не критична, так как для эксплуатации требует доступ к девайсу, а с ним и других проблем понаделать можно) с загрузкой в Secure Boot, что поломали уже работающий загрузчик :)

          0
            0
            Очевидно, не на всех серверах.
            Я вчера 9 штук перегрузил, все ок. Все с UEFI, все предварительно обновил.
              0

              Что там слышно? Не пофиксили еще?

                0
                Насколько удобно использовать CentOS для домашних нужд и интернета? Будет высокая безопасность аккаунтов сайтов, почт, банкинга?
                  0

                  Для дома – скорее нет.


                  А вот в качестве рабочего места корпоративного администратора – очень да: использовать как площадку для ssh/rdp клиентов, деинсталлировав openssh-server и закрывшись nft/iptables.


                  Инфобезам очень нравится.

                    0
                    инфобез это кто?
                  0
                  А зачем откатывать? достаточно обновить загрузчик после обновления grub2.
                  Если загружаетесь из live, обновите пакет в нём перед установкой загрузчика.

                  grub2-install /dev/sda

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое