RHEL9にアップグレード後、再起動が失敗する現象の対処方法を共有させてください

どうもこんにちは、Clefable_Tです。

今回は、RHEL9にアップグレード完了後、再起動を実施するのですが、その再起動が完了せず、結果的にVMが使用できなくなる。といった現象に直面したので、この対処方法について共有させていただければと思います。

<h1>免責事項

本記事の内容は<font color="red"><b>あくまで個人の一意見です。</b></font>
ですので本記事を参照し、実環境で作業を実施後、何らかの問題が生じた場合、筆者及び筆者所属会社は当該事象について責任を負いません。

※絶対個々人で検証、リハーサルしてね。という意味です
エンジニアであれば当然のようにするとは思いますが、念のため・・・


<h1>前提

Azureの仮想マシンで _Gen1（世代1）_ をお使いの方

<h1>本事象の原因

UEFIのブートオプションを使用して仮想マシンを起動しているから。となります。
これが原因でハングが起きるそうです・・・

Gen1のVMではUEFIを使用していることがあり、この状態でRHEL9へアップグレードを行い、再起動を行うと再起動が失敗します。

なので、起動時にUEFI採用させなければ再起動は問題無く完了します。<font color="red">（あくまで一例に過ぎないので個々人で検証は必ず行うようにしてください）</font>

:::note warn
※すべてのGen1のVMがUEFIを使用しているわけでもないようです。実際に下記のようなことがありました。
A環境のVM　→　UEFIを採用していない
B環境のVM　→　UEFIを採用していた
:::

<h1>対処方法

さて、本事象の対処方法を記載します。

* まずは、下記コマンドを実施してブート時に参照されるパーティション情報を確認してください。

■実行コマンド
```
sudo -i blkid
```
以下が実行結果です。
<font color="red"> _dev/sda1_ </font> の設定に <font color="red">_PARTLABEL="EFI System Partition"_</font> の設定があると思います。この確認を以て、作業対象のVMはUEFIを使用してVMを起動しているということが分かります。

上記の確認に加えて、ブート時に参照されるパーティション（本記事では<font color="red"> _dev/sda1_ </font>）のUUIDの情報も控えるようにしておいてください。（本記事では<font color="red"> _UUID="926F-xxxx"_ </font>）

■実行結果
```
/dev/sda1: SEC_TYPE="msdos" UUID="926F-xxxx" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
/dev/sda2: UUID="uuid" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
/dev/sda4: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="LVM2_member" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

:::note warn
※今回は/dev/sda1で作業してますが、ブートで使用されるパーティションは環境によって異なると思いますので、設定時には必ず確認するようにしてください。
:::

:::note info
上記が無ければそのままアップグレード対応しても、再起動は問題無く完了します。
:::

* システム起動時にマウントされるファイルシステムの設定を変更していきます。まずは _/etc/fstab_ の設定内容を確認します

■実行コマンド
```
cat /etc/fstab
```

■実行結果
先程<font color="red"> _sudo -i blkid_ </font>でパーティション情報を確認する際に、控えておいた<font color="red"> _dev/sda1_ </font>のUUIDがコンフィグ内に存在することを確認します。

本記事では<font color="red"> _UUID="926F-xxxx"_ </font>です。確かに存在していますね。

```
/dev/mapper/rootvg-rootlv /                       xfs     defaults        0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot                   xfs     defaults        0 0
UUID=926F-xxxx            /boot/efi               vfat    defaults,uid=0,gid=0,umask=0077,shortname=winnt 0 0
…
/dev/mapper/rootvg-varlv /var                    xfs     defaults        0 0
```

* 確認が済みましたら、viエディタを起動して、実際に設定変更していきます。

■実行コマンド
```
vi /etc/fstab
```

先程確認した<font color="red"> _dev/sda1_ </font>の<font color="red"> _UUID="926F-xxxx"_ </font>の部分をコメントアウトして、読み込ませないようにします。

```
/dev/mapper/rootvg-rootlv /                       xfs     defaults        0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot                   xfs     defaults        0 0
# UUID=926F-xxxx    ←ここです      /boot/efi               vfat    defaults,uid=0,gid=0,umask=0077,shortname=winnt 0 0
…
/dev/mapper/rootvg-varlv /var                    xfs     defaults        0 0
```

* あとは通常通りRHEL9 に向けてアップグレード作業を実施いただければOKです

<h1>最後に

再起動で終わりだー！やったー！と思っていたら、再起動が完了せずに、結果的にVMが使えなくなり、完全オワタ <b>／(^o^)＼</b> という惨劇を味わいました。

イヤーこれ、検証の段階で遭遇して、対処出来たのが本当に救いでしたねぇ・・・

検証はしつこいほどやった方がよい。これに尽きそうですね。
この記事がどなたかのお役に立てれば光栄です。

最後までお読みいただきありがとうございました。