メニュー

【RHEL/RPM系】kernelの更新と古いパッケージの対処メモ

CVE-2026-98432のパッチ対応済みのバージョンを更新するときのメモでもある。

更新前に、現在のkernelバージョンをちゃんと確認しておくこと。

uname -r

kernelの更新(パッチはよ来いモード)

dnf updateをしても、タイムラグでリポジトリ側の最新情報を取得できないこともある。
なのでまずは以下コマンドから、新しく公開されたパッケージ情報を手元のサーバーに反映させる。

sudo dnf makecache

各自にキャッシュを消すなら以下のコマンド。

sudo dnf clean all
sudo dnf makecache

キャッシュをクリアしたあと、kernelの更新があるかを確認する。

dnf check-update kernel

更新があれば普通にsudo dnf update kernelもしくはsudo dnf updateでゆける。そのあと必ず再起動(reboot)すること。

再起動後、新しいkernelバージョンになっているかどうかを必ず確認すること。※rebootしないと新しいバージョンが反映されない。

uname -r

kernelの更新がない場合

以下のコマンドで、リポジトリには本当に必要なkernelがないのかを確認する。

dnf --showduplicates list kernel-core | tail -n 10

10行ずらーっと並ぶ。多分ないねー()

できることは待つこと。ただ待つ。時間をおいてからまた試す。

再び更新を確かめるときには、キャッシュのクリアからスタートする。

kernelの古いパッケージを削除

CVE-2026-98432だとセキュリティ上、古いパッケージを削除した方がよい。
現在、最新のkernelバージョンになっているかどうかは必ず確認すること。

特にkernelのパッケージを管理していなければ、以下3点に古いkernelパッケージが入っている。通常だと古いパッケージは更新が入るにつれ自動的に消える。

  • RPMデータベース
  • ブート領域のカーネルファイル
  • GRUB(ブートローダー)に登録されている起動エントリー

RPMデータベースの確認

以下はRPMデータベースに登録されているkernelパッケージを確認するコマンド。

rpm -qa kernel-core

ブート領域のカーネルファイルの確認

以下はブート領域のkernelファイルを確認するコマンド。

ls -l /boot/vmlinuz-*

加えて、GRUBの設定ファイルのタイムスタンプを確認するコマンド。

sudo ls -la /boot/grub2/grub.cfg

GRUB(ブートローダー)に登録されている起動エントリーの確認

以下はGRUB(ブートローダー)に登録されている起動エントリーを確認するコマンド。

sudo grubby --info=ALL | grep -E "kernel|title"

加えて、OSの起動時にデフォルト(一番最初)で読み込まれるよう設定されているkernelのファイルパスを確認するコマンド。

sudo grubby --default-kernel

kernelの古いパッケージの削除手順と、削除後の対応

各出力を控えたら、以下のコマンドから古いkernelパッケージを削除する。古いインストール済みkernelを自動で安全に一括削除できる便利なコマンドである。

sudo dnf remove --oldinstallonly

sudo ls -la /boot/grub2/grub.cfgで、タイムスタンプが更新されているかどうかを確認する。
もしタイムスタンプが更新されていなければ、以下のコマンドでGRUB(ブートローダー)の設定ファイルを再生成して同期させる。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

再びsudo ls -la /boot/grub2/grub.cfgしてタイムスタンプが更新されていたらOK。

sudo grubby –default-kernelで、意図したバージョンになっているかどうかを確認する。
もし意図したバージョンになっていなければ、以下のようなコマンドで指定する。(意図したバージョンにならないことはまずないので、万が一の対応)

sudo grubby --set-default /boot/<最新のkernelパッケージを指定>