一部のCentOS7環境でパッケージを更新したらOSを起動できなくなる不具合が発生(2020年7月31日)

一部のCentOS7環境でパッケージを更新したらOSを起動できなくなる不具合が発生(2020年7月31日)

2020年7月31日にCentOS7関連の更新パッケージが公開されたので、UEFI環境で稼働中のWebサーバーに適用したところOSが起動しなくなるトラブルに見舞われました。

原因を探っていると、どうやら以下の記事で紹介されている内容そのもののようでした。

System hangs after POST and the grub menu never loads after applying the RHSA-2020:3216 or RHSA-2020:3217 - Red Hat Customer Portal

そこで、ここでは上の記事を参考に、実際に自分の環境で実施した対処方法を紹介します。

Memo

2020年8月4日に不具合を解消した更新パッケージが公開されたので、ここで紹介している回避方法は不要となりました。

動作環境

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェア バージョン
CentOS Linux 7.8.2003

対処方法

対処方法は、レスキューモードでシステムを起動して、トラブルの原因となっているパッケージをダウングレードします。

なお、以下の手順は、パッケージを更新した後に再起動してしまった場合の対処方法で、まだ再起動していない場合は、以下の手順の内「2.4 原因のパッケージをダウングレード」と「2.5 yum.confの設定を変更」を実施すればOKです。

レスキューモードで起動

まず、CentOS7のインストールDVD(Minimal版でOKです)を用意して、該当のマシンをDVDから起動します。

DVDから起動したら「Troubleshooting」を選択した状態で、エンターキーを押します。

一部のCentOS7環境でパッケージを更新したらOSを起動できなくなる不具合が発生(2020年7月31日)

次画面で「Rescue a CentOS system」を選択した状態で、エンターキーを押します。

一部のCentOS7環境でパッケージを更新したらOSを起動できなくなる不具合が発生(2020年7月31日)

以下のようなレスキュー画面が表示されるので「1」を入力し、エンターキーを押します。

一部のCentOS7環境でパッケージを更新したらOSを起動できなくなる不具合が発生(2020年7月31日)

「Please press <return> to get a shell」と表示されるので、エンターキーを押すとシェルが起動します。

一部のCentOS7環境でパッケージを更新したらOSを起動できなくなる不具合が発生(2020年7月31日)

ネットワーク設定

次に、以下のコマンドを実行して、インターネット接続するためのインターフェース名を確認しておきます。

sh-4.2# nmcli connection show

インターフェース名を確認したら、以下のコマンドを順に実行して、ネットワークアドレスを設定します。

sh-4.2# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.1.199/24
sh-4.2# nmcli connection modify eth0 ipv4.gateway 192.168.1.254
sh-4.2# vi /etc/resolve.conf
nameserver 8.8.8.8

※インターフェース名やネットワークアドレスは、環境に合った内容を入力します。

ネットワークアドレスを設定したら、インターフェースを起動します。

sh-4.2# nmcli connection up eth0

rootパーティションをマウント

次に、以下のコマンドを実行して、rootパーティションをマウントします。

sh-4.2# chroot /mnt/sysimage

原因のパッケージをダウングレード

次に、トラブルの原因になっているパッケージをダウングレードします。

bash-4.2# yum downgrade shim\* grub2\* mokutil

yum.confの設定を変更

ダウングレードしたパッケージが更新されないよう、yum.confファイルに「exclude=grub2* shim* mokutil」を追記します。

bash-4.2# vi /etc/yum.conf
exclude=grub2* shim* mokutil

再起動

レスキューモードを終了して、DVDを取り出してOSを通常起動します。

bash-4.2# exit
sh-4.2# exit

以上で、OSが正常起動するはずです。

あとがき

パッケージの更新でOSが起動しなくなるなんて、ここ数年経験していなかったので焦りましたが、対処法がすでに掲載されていてよかったです。。

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ
トップへ戻る