最新のCentOSアップデートはGRUB2-efiブートローダーを壊します

起動後yum updateのCentOS上で、その後の再起動時に、あなたはBIOSのスプラッシュ画面上のハングその破損したサーバーの形で驚きのためであってもよいです。



昨日フォーラム バグトラッカーで問題について書き始めました。この問題はUEFIブートローダーを備えたすべてのシステムに影響し、少なくともCentOS7.8および8.2に関連しているようです。そのため、昨日の夜、サーバーを更新して再起動するのに十分な運がなかったので、楽しい夜を過ごすことができました。



この問題は、サーバーの再起動時にBIOSスプラッシュ画面を備えたフリーズ画面の形で現れます。最初は何が起こっているのかがまったくわかりません。エラーはなく、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* mokutilyum構成ファイルの例外(行)に追加する必要があります/etc/yum.conf



CentOS 7のパッケージの問題のあるバージョンでは、UEFIブートローダーが故障します。

grub2-2.02-0.86.el7.centos.x86_64

shim-x64-15-7.el7_9.x86_64




All Articles