はじめに
RHEL のアップデート後にカーネルのGRUB (GRand Unified Bootloader)エントリを修正したログです。
不要な古いカーネルのエントリを削除し、システム起動時の選択肢を整理することで、ディスクスペースを解放し、システムの管理性と安定性を向上させることを目的としています。
特に、レスキューイメージを最新のカーネルバージョンで再作成することは、万一のトラブル時に最新の環境で復旧作業を行うために重要です。
以下を参考にしました。
GRUBエントリとは
GRUB(GRand Unified Bootloader)における「GRUBエントリ」とは、Linuxシステム起動時に最初に表示されるメニューに表示される、起動可能なカーネルの選択肢のことです。これにより、ユーザーは複数のカーネルバージョンやオペレーティングシステムの中から、起動したいものを選択できます。GRUBエントリは、GRUBの設定ファイル(通常 /boot/grub2/grub.cfg)に記載されている起動オプションを指します。
システム起動時にGRUBメニューが表示され、通常は最新のカーネルがデフォルトで選択されます。
Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)
Red Hat Enterprise Linux (0-rescue-38514809610a4b5b88611126f65a8068) 8.1>
Use the ^ and v keys to change the selection.
Press 'e' to edit the selected item, or 'c' for a command prompt.
The selected entry will be started automatically in 3s.
環境
・RHEL 8.6 ppc64le (on IBM Power S1012) から
-> RHEL 8.10 ppc64le (on IBM Power S1012) へアップデートした仮想マシン
アップデート前の GRUB 関連情報確認
- カーネルバージョン確認
# uname -r
4.18.0-372.9.1.el8.ppc64le
- /boot ディレクトリ確認
/bootディレクトリには、カーネルイメージ(vmlinuz-)、初期RAMディスクイメージ(initramfs-)、GRUB関連ファイルなどが格納されています。
# ls -l /boot
total 269120
-rw-r--r--. 1 root root 150984 Apr 15 2022 config-4.18.0-372.9.1.el8.ppc64le
drwxr-xr-x. 3 root root 17 May 8 00:07 efi
drwx------. 4 root root 104 May 8 00:12 grub2
-rw-------. 1 root root 107181636 May 8 00:11 initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img
-rw-------. 1 root root 58386816 May 8 00:13 initramfs-4.18.0-372.9.1.el8.ppc64le.img
-rw-------. 1 root root 34961408 Jun 17 01:03 initramfs-4.18.0-372.9.1.el8.ppc64lekdump.img
drwxr-xr-x. 3 root root 21 May 8 00:10 loader
lrwxrwxrwx. 1 root root 50 May 8 00:11 symvers-4.18.0-372.9.1.el8.ppc64le.gz -> /lib/modules/4.18.0-372.9.1.el8.ppc64le/symvers.gz
-rw-------. 1 root root 3620730 Apr 15 2022 System.map-4.18.0-372.9.1.el8.ppc64le
-rwxr-xr-x. 1 root root 35634133 May 8 00:11 vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df
-rwxr-xr-x. 1 root root 35634133 Apr 15 2022 vmlinuz-4.18.0-372.9.1.el8.ppc64le
#
現在稼働しているカーネルバージョン(4.18.0-372.9.1.el8.ppc64le)に対応するファイルが存在することを確認します。また、レスキューイメージもこのカーネルバージョンに基づいていることがわかります。
- インストール済みのカーネル関連パッケージ確認
# rpm -qa | grep kernel
kernel-tools-4.18.0-372.9.1.el8.ppc64le
kernel-core-4.18.0-372.9.1.el8.ppc64le
kernel-modules-4.18.0-372.9.1.el8.ppc64le
kernel-tools-libs-4.18.0-372.9.1.el8.ppc64le
erlang-kernel-25.1-ibm.1.el8.ppc64le
kernel-4.18.0-372.9.1.el8.ppc64le
現在のカーネルバージョンに対応するkernel、kernel-core、kernel-modulesなどのパッケージがインストールされていることを確認します。
- GRUB に登録されているカーネル情報の確認
grubbyコマンドを使って、GRUBに登録されているブートエントリの詳細情報を確認します。
# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-4.18.0-372.9.1.el8.ppc64le"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-372.9.1.el8.ppc64le.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-372.9.1.el8.ppc64le) 8.6 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-4.18.0-372.9.1.el8.ppc64le"
index=1
kernel="/boot/vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img"
title="Red Hat Enterprise Linux (0-rescue-b1f9efac099d42559ef478b6019687df) 8.6 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-0-rescue"
#
この出力から、デフォルト(index=0)で「Red Hat Enterprise Linux (4.18.0-372.9.1.el8.ppc64le) 8.6 (Ootpa)」が起動するように設定されており、さらにレスキューカーネルのエントリも存在することを確認できました。
RHEL 8.6 -> 8.10 アップデート
以下の記事をご参考ください
OS再起動を実行した状態で、後続作業を行います。これにより、新しいカーネルがロードされた状態での確認が可能になります。
アップデート後の GRUB 関連情報確認
RHELのアップデートと再起動が完了した後、システムの状態がどのように変化したかを確認します。
- カーネルバージョン確認
新しいカーネルが正常にロードされているかを確認します。
# uname -a
Linux testrhel810-2 4.18.0-553.el8_10.ppc64le #1 SMP Fri May 10 14:40:31 EDT 2024 ppc64le ppc64le ppc64le GNU/Linux
新しいカーネル(4.18.0-553.el8_10.ppc64le)が反映されていることを確認できました。
- /boot ディレクトリの内容確認
# ls -l /boot
total 361992
-rw-r--r--. 1 root root 150984 Apr 15 2022 config-4.18.0-372.9.1.el8.ppc64le
-rw-r--r--. 1 root root 153321 May 10 2024 config-4.18.0-553.el8_10.ppc64le
drwxr-xr-x. 3 root root 17 May 8 00:07 efi
drwx------. 4 root root 104 Sep 19 00:27 grub2
-rw-------. 1 root root 107181636 May 8 00:11 initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img
-rw-------. 1 root root 56654807 Sep 19 00:25 initramfs-4.18.0-372.9.1.el8.ppc64le.img
-rw-------. 1 root root 34950656 Sep 19 00:26 initramfs-4.18.0-372.9.1.el8.ppc64lekdump.img
-rw-------. 1 root root 56680228 Sep 19 00:27 initramfs-4.18.0-553.el8_10.ppc64le.img
drwxr-xr-x. 3 root root 21 May 8 00:10 loader
lrwxrwxrwx. 1 root root 50 May 8 00:11 symvers-4.18.0-372.9.1.el8.ppc64le.gz -> /lib/modules/4.18.0-372.9.1.el8.ppc64le/symvers.gz
lrwxrwxrwx. 1 root root 49 Sep 19 00:26 symvers-4.18.0-553.el8_10.ppc64le.gz -> /lib/modules/4.18.0-553.el8_10.ppc64le/symvers.gz
-rw-------. 1 root root 3620730 Apr 15 2022 System.map-4.18.0-372.9.1.el8.ppc64le
-rw-------. 1 root root 3713724 May 10 2024 System.map-4.18.0-553.el8_10.ppc64le
-rwxr-xr-x. 1 root root 35634133 May 8 00:11 vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df
-rwxr-xr-x. 1 root root 35634133 Apr 15 2022 vmlinuz-4.18.0-372.9.1.el8.ppc64le
-rwxr-xr-x. 1 root root 36293903 May 10 2024 vmlinuz-4.18.0-553.el8_10.ppc64le
#
新しいカーネル(4.18.0-553.el8_10.ppc64le)に対応する vmlinuz、initramfs、System.map、configファイルが追加されています。同時に、旧バージョンのファイルもまだ残存していることが確認できます。
- GRUB に登録されたカーネル情報の確認
grubbyコマンドでGRUBのエントリを確認すると、新しいカーネルと古いカーネルの両方が登録されていることがわかります。
# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-4.18.0-553.el8_10.ppc64le"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-553.el8_10.ppc64le.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-4.18.0-553.el8_10.ppc64le"
index=1
kernel="/boot/vmlinuz-4.18.0-372.9.1.el8.ppc64le"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-372.9.1.el8.ppc64le.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-372.9.1.el8.ppc64le) 8.6 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-4.18.0-372.9.1.el8.ppc64le"
index=2
kernel="/boot/vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img"
title="Red Hat Enterprise Linux (0-rescue-b1f9efac099d42559ef478b6019687df) 8.6 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-0-rescue"
・index=0: 新しいカーネル(デフォルト)
・index=1: 旧カーネル
・index=2: レスキューカーネル (これはまだ古いカーネルバージョンに基づいています)
この状態では、システムは新しいカーネルで起動していますが、GRUBメニューには古いカーネルや古いレスキューイメージの選択肢が残っています。これらを整理することで、起動時の選択肢が簡潔になり、ディスクスペースも解放されます。
- モジュールディレクトリの確認
/lib/modulesディレクトリには、カーネルモジュールがバージョンごとに格納されています。
# ls -l /lib/modules
total 8
drwxr-xr-x. 6 root root 4096 Sep 19 00:27 4.18.0-372.9.1.el8.ppc64le
drwxr-xr-x. 3 root root 19 Sep 19 00:24 4.18.0-526.el8.ppc64le
drwxr-xr-x. 6 root root 4096 Sep 19 00:27 4.18.0-553.el8_10.ppc64le
新しいモジュールディレクトリ"4.18.0-553.el8_10.ppc64le" の存在を確認できました。
前のバージョンの4.18.0-372.9.1.el8.ppc64leも存在しています。
また、4.18.0-526.el8.ppc64leも存在しますが、これは過去のマイナーアップデートで導入された可能性があり、現在のシステムでは使用されていないと考えられます。
- インストール済みカーネル・パッケージの確認
再度rpm -qaで確認すると、新旧両方のカーネルパッケージがインストールされていることがわかります。
# rpm -qa | grep kernel
kernel-core-4.18.0-372.9.1.el8.ppc64le
kernel-core-4.18.0-553.el8_10.ppc64le
kernel-4.18.0-372.9.1.el8.ppc64le
kernel-tools-libs-4.18.0-553.el8_10.ppc64le
kernel-modules-4.18.0-372.9.1.el8.ppc64le
kernel-modules-4.18.0-553.el8_10.ppc64le
kernel-tools-4.18.0-553.el8_10.ppc64le
erlang-kernel-25.1-ibm.1.el8.ppc64le
kernel-4.18.0-553.el8_10.ppc64le
- DNF による旧カーネルのインストール元確認
# dnf list installed | grep 4.18.0-372
kernel.ppc64le 4.18.0-372.9.1.el8 @anaconda
kernel-core.ppc64le 4.18.0-372.9.1.el8 @anaconda
kernel-modules.ppc64le 4.18.0-372.9.1.el8 @anaconda
これらのパッケージはシステムインストール時に anaconda で導入されたものであることが確認できました。
前のカーネル情報の削除
不要になった古いカーネルのパッケージを削除し、ディスクスペースを解放します。
- DNF による旧モジュールパッケージの削除
# dnf remove kernel-modules-4.18.0-372.9.1.el8.ppc64le
================================================================================
Package Architecture Version Repository Size
================================================================================
Removing:
kernel-modules ppc64le 4.18.0-372.9.1.el8 @anaconda 19 M
Removing dependent packages:
kernel ppc64le 4.18.0-372.9.1.el8 @anaconda 0
Transaction Summary
================================================================================
Remove 2 Packages
Freed space: 19 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Erasing : kernel-4.18.0-372.9.1.el8.ppc64le 1/2
Running scriptlet: kernel-4.18.0-372.9.1.el8.ppc64le 1/2
Erasing : kernel-modules-4.18.0-372.9.1.el8.ppc64le 2/2
Running scriptlet: kernel-modules-4.18.0-372.9.1.el8.ppc64le 2/2
Verifying : kernel-4.18.0-372.9.1.el8.ppc64le 1/2
Verifying : kernel-modules-4.18.0-372.9.1.el8.ppc64le 2/2
Installed products updated.
Removed:
kernel-4.18.0-372.9.1.el8.ppc64le kernel-modules-4.18.0-372.9.1.el8.ppc64le
Complete!
#
- 4.18.0-372 カーネルのパッケージを再確認
dnf list installedで確認すると、kernelとkernel-modulesは削除されたものの、kernel-coreがまだ残っていることがわかります。
dnfは自動的に依存関係を削除しますが、明示的にインストールされた一部のパッケージは手動で削除が必要な場合があります。
# dnf list installed | grep 4.18.0-372
kernel-core.ppc64le 4.18.0-372.9.1.el8 @anaconda
# rpm -qa | grep kernel
kernel-core-4.18.0-372.9.1.el8.ppc64le
kernel-core-4.18.0-553.el8_10.ppc64le
kernel-tools-libs-4.18.0-553.el8_10.ppc64le
kernel-modules-4.18.0-553.el8_10.ppc64le
kernel-tools-4.18.0-553.el8_10.ppc64le
erlang-kernel-25.1-ibm.1.el8.ppc64le
kernel-4.18.0-553.el8_10.ppc64le
[root@testrhel86 modules]#
- 残存する kernel-core パッケージの削除
kernel-coreパッケージをrpm -eコマンドで明示的に削除します。
# rpm -e kernel-core-4.18.0-372.9.1.el8.ppc64le
# echo $?
0
- パッケージ削除確認
# dnf list installed | grep 4.18.0-372
#
# rpm -qa | grep kernel
kernel-tools-4.18.0-553.el8_10.ppc64le
kernel-4.18.0-553.el8_10.ppc64le
kernel-modules-4.18.0-553.el8_10.ppc64le
kernel-tools-libs-4.18.0-553.el8_10.ppc64le
kernel-core-4.18.0-553.el8_10.ppc64le
古いバージョンの4.18.0-372に関連するパッケージはすべて消え、最新のカーネル関連パッケージのみが残っていることを確認できました。
- /lib/modules の確認
カーネルパッケージの削除に伴い、/lib/modulesディレクトリからも古いモジュールディレクトリが消えていることを確認します。
# ls -l /lib/modules
total 4
drwxr-xr-x. 3 root root 19 Sep 19 00:24 4.18.0-526.el8.ppc64le
drwxr-xr-x. 6 root root 4096 Sep 19 00:27 4.18.0-553.el8_10.ppc64le
前のバージョンの4.18.0-372.9.1.el8.ppc64leモジュールディレクトリが削除されていることが確認できます。
なお、4.18.0-526.el8.ppc64leは現行カーネル(4.18.0-553.el8_10.ppc64le)よりも少し古いバージョンですが、更新日時がアップデート時と近いため、現時点ではシステムに影響がないと判断し、今回はそのまま残します。
- /boot ディレクトリの確認
パッケージの削除後、/bootディレクトリからも古いカーネル関連ファイルが消えていることを確認します。
# ls -l /boot
total 234048
-rw-r--r--. 1 root root 153321 May 10 2024 config-4.18.0-553.el8_10.ppc64le
drwxr-xr-x. 3 root root 17 May 8 00:07 efi
drwx------. 4 root root 104 Sep 19 00:59 grub2
-rw-------. 1 root root 107181636 May 8 00:11 initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img
-rw-------. 1 root root 56680228 Sep 19 00:27 initramfs-4.18.0-553.el8_10.ppc64le.img
drwxr-xr-x. 3 root root 21 May 8 00:10 loader
lrwxrwxrwx. 1 root root 49 Sep 19 00:26 symvers-4.18.0-553.el8_10.ppc64le.gz -> /lib/modules/4.18.0-553.el8_10.ppc64le/symvers.gz
-rw-------. 1 root root 3713724 May 10 2024 System.map-4.18.0-553.el8_10.ppc64le
-rwxr-xr-x. 1 root root 35634133 May 8 00:11 vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df
-rwxr-xr-x. 1 root root 36293903 May 10 2024 vmlinuz-4.18.0-553.el8_10.ppc64le
#
古いカーネル本体やそのinitramfs等は削除されましたが、vmlinuz-0-rescue-*とinitramfs-0-rescue-*はまだ残っています。これらはパッケージに依存しないため、手動での再作成が必要です。
- GRUB エントリの確認
grubby --info=ALLでGRUBエントリを確認すると、古いカーネルのエントリが消え、新しいカーネルと古いレスキューエントリのみが残っていることがわかります。
# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-4.18.0-553.el8_10.ppc64le"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-553.el8_10.ppc64le.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-4.18.0-553.el8_10.ppc64le"
index=1
kernel="/boot/vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img"
title="Red Hat Enterprise Linux (0-rescue-b1f9efac099d42559ef478b6019687df) 8.6 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-0-rescue"
rescue イメージ再作成
RHEL のアップデート後も、/boot ディレクトリには古いカーネルバージョン(RHEL 8.6)に基づいたレスキューイメージファイルが残存しています。
これらのファイルは自動的に更新されないため、最新のカーネルバージョン(RHEL 8.10)でレスキューイメージを再作成することで、万一のシステムトラブル発生時にも最新の環境で復旧作業を行うことが可能になります。
まずは、現状のレスキューイメージファイルを確認します。
# ls -l /boot/ | grep rescue
-rw-------. 1 root root 107181636 May 8 00:11 initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img
-rwxr-xr-x. 1 root root 35634133 May 8 00:11 vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df
- 対象ファイルの削除
古いレスキューイメージファイルを削除します。
# rm /boot/vmlinuz-*rescue* /boot/initramfs-*rescue*
rm: remove regular file '/boot/vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df'? y
rm: remove regular file '/boot/initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img'? y
- rescue イメージの再生成(新カーネル用)
現在稼働している最新のカーネルバージョン ($(uname -r)) をもとに、新しいレスキューイメージとGRUBエントリを生成します。
# /usr/lib/kernel/install.d/51-dracut-rescue.install add "$(uname -r)" /boot "/boot/vmlinuz-$(uname -r)"
# echo $?
0
このコマンドは、dracut を使用して現在のカーネル用のレスキューイメージ (initramfs-0-rescue-* と vmlinuz-0-rescue-*) を作成し、対応するGRUBエントリを自動的に登録します。
- 確認:再生成されたファイルを確認します。
# ls -ltr /boot
total 276184
-rw-------. 1 root root 3713724 May 10 2024 System.map-4.18.0-553.el8_10.ppc64le
-rw-r--r--. 1 root root 153321 May 10 2024 config-4.18.0-553.el8_10.ppc64le
-rwxr-xr-x. 1 root root 36293903 May 10 2024 vmlinuz-4.18.0-553.el8_10.ppc64le
drwxr-xr-x. 3 root root 17 May 8 00:07 efi
drwxr-xr-x. 3 root root 21 May 8 00:10 loader
lrwxrwxrwx. 1 root root 49 Sep 19 00:26 symvers-4.18.0-553.el8_10.ppc64le.gz -> /lib/modules/4.18.0-553.el8_10.ppc64le/symvers.gz
-rw-------. 1 root root 56680228 Sep 19 00:27 initramfs-4.18.0-553.el8_10.ppc64le.img
drwx------. 4 root root 104 Sep 19 00:59 grub2
-rw-------. 1 root root 34968576 Sep 19 01:05 initramfs-4.18.0-553.el8_10.ppc64lekdump.img
-rwxr-xr-x. 1 root root 36293903 Sep 19 01:11 vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df
-rw-------. 1 root root 114699195 Sep 19 01:12 initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img
vmlinuz-0-rescue-* と initramfs-0-rescue-* のタイムスタンプが最新(Sep 19 01:11 / 01:12)に更新されていることを確認できました。これは、新しいカーネルバージョンに基づいたレスキューイメージが正常に作成されたことを示しています。
GRUB エントリ修正
古いレスキューイメージを削除し、新しいレスキューイメージを再生成したことで、GRUBの設定ファイルも更新されているはずです。最終確認としてGRUBのエントリを確認し、必要であればGRUB設定ファイルを再生成します。
- GRUB エントリの確認
grubby --info=ALL コマンドで、現在のGRUBエントリの状態を確認します。
# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-4.18.0-553.el8_10.ppc64le"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-553.el8_10.ppc64le.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-4.18.0-553.el8_10.ppc64le"
index=1
kernel="/boot/vmlinuz-0-rescue-b1f9efac099d42559ef478b6019687df"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-0-rescue-b1f9efac099d42559ef478b6019687df.img $tuned_initrd"
title="Red Hat Enterprise Linux (0-rescue-b1f9efac099d42559ef478b6019687df) 8.10 (Ootpa)"
id="b1f9efac099d42559ef478b6019687df-0-rescue"
#
index=1 のレスキューカーネルの title が Red Hat Enterprise Linux (0-rescue-...) 8.10 (Ootpa) となり、バージョンがRHEL 8.10に更新されていることが確認できます。
- GRUB2 の設定ファイル /boot/grub2/grub.cfg から menuentry を含む行を抽出
念のため、GRUBの実際のメニュー設定ファイル (grub.cfg) の内容も確認します。
# grep menuentry /boot/grub2/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)' --class kernel --unrestricted --id=b1f9efac099d42559ef478b6019687df-4.18.0-553.el8_10.ppc64le {
menuentry 'Red Hat Enterprise Linux (0-rescue-b1f9efac099d42559ef478b6019687df) 8.6 (Ootpa)' --class kernel --unrestricted --id=b1f9efac099d42559ef478b6019687df-0-rescue {
ここで menuentry の title を見ると、レスキューエントリのバージョンがまだ 8.6 と表示されています。これは、/usr/lib/kernel/install.d/51-dracut-rescue.install コマンドがGRUBエントリを更新したものの、grub.cfg 自体は再生成されていないためです。GRUBメニューに正確な情報を反映させるため、grub2-mkconfig コマンドで設定ファイルを再生成します。
- /boot/grub2/grub.cfg の自動生成
現在のシステム状態(インストールされているカーネルなど)を元に、/boot/grub2/grub.cfg を自動生成します。
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Generating boot entries from BLS files...
done
# echo $?
0
grub2-mkconfig コマンドは、現在システムに存在するカーネルやレスキューイメージを検出し、最適なGRUB設定ファイルを生成します。
- 再生成後の grub.cfg を確認
grub.cfg が正しく更新されたか、再度 grep コマンドで確認します。
# grep menuentry /boot/grub2/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)' --class kernel --unrestricted --id=b1f9efac099d42559ef478b6019687df-4.18.0-553.el8_10.ppc64le {
menuentry 'Red Hat Enterprise Linux (0-rescue-b1f9efac099d42559ef478b6019687df) 8.10 (Ootpa)' --class kernel --unrestricted --id=b1f9efac099d42559ef478b6019687df-0-rescue {
レスキューエントリのバージョンが 8.6 から 8.10 に更新されていることを確認できました。これでGRUB設定は最新のレスキューイメージを正しく反映しています。
ブートローダーの確認
システムを再起動し、GRUBブートメニューが表示されることを確認します。
# systemctl reboot
コンソール画面(HMC vtermから対象LPARのコンソールを開く) で表示されるGRUBメニューを確認します。
Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)
Red Hat Enterprise Linux (0-rescue-38514809610a4b5b88611126f65a8068) 8.1>
Use the ^ and v keys to change the selection.
Press 'e' to edit the selected item, or 'c' for a command prompt.
The selected entry will be started automatically in 3s.
画面ではレスキューエントリの末尾が切れていますが、主要なカーネルもレスキューカーネルも RHEL 8.10 と表示されており、古いRHEL 8.6のエントリはなくなっていることを確認できます。
- 再度、GRUB エントリの確認(ログイン後)
システムが起動し、ログインできた後に grubby --info=ALL コマンドで最終確認を行います。
# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-4.18.0-553.el8_10.ppc64le"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-553.el8_10.ppc64le.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)"
id="38514809610a4b5b88611126f65a8068-4.18.0-553.el8_10.ppc64le"
index=1
kernel="/boot/vmlinuz-0-rescue-38514809610a4b5b88611126f65a8068"
args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-0-rescue-38514809610a4b5b88611126f65a8068.img $tuned_initrd"
title="Red Hat Enterprise Linux (0-rescue-38514809610a4b5b88611126f65a8068) 8.10 (Ootpa)"
id="38514809610a4b5b88611126f65a8068-0-rescue"
- 再度、grub.cfg の確認 (ログイン後)
# grep menuentry /boot/grub2/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'Red Hat Enterprise Linux (4.18.0-553.el8_10.ppc64le) 8.10 (Ootpa)' --class kernel --unrestricted --id=38514809610a4b5b88611126f65a8068-4.18.0-553.el8_10.ppc64le {
menuentry 'Red Hat Enterprise Linux (0-rescue-38514809610a4b5b88611126f65a8068) 8.10 (Ootpa)' --class kernel --unrestricted --id=38514809610a4b5b88611126f65a8068-0-rescue {
#
RHEL 8.6 のカーネル情報やブートローダー情報は完全に削除され、GRUBブートメニューおよび設定ファイルには RHEL 8.10 のカーネルと最新のレスキューイメージのみが正しく表示されていることを確認できました。
おわりに
アップデート後では古いカーネルが残ったままになりますが、その修正手順を確認しました。
以上です。