Atsushi2022の日記

データエンジニアリングに関連する記事を投稿してます

Red Hat カーネルのアップグレード

カーネルとはハードウェアとソフトウェアアプリケーションの仲立ち(インターフェイス)をするLinux OSのコアの部分。

Red Hatだと、カーネルRPM形式でパッケージ化されており、yum(ないし、dnf)で簡単にアップグレードできる。

カーネルRPMパッケージは、次のようにサブパッケージからなる。

$ sudo rpm -qa | grep kernel
kernel-tools-libs-5.14.0-383.el9.x86_64
kernel-modules-core-5.14.0-383.el9.x86_64
kernel-core-5.14.0-383.el9.x86_64
kernel-modules-5.14.0-383.el9.x86_64
kernel-5.14.0-383.el9.x86_64
kernel-tools-5.14.0-383.el9.x86_64

各サブパッケージのバージョン一覧を表示するにはyum repoqueryコマンドを使う。

$ yum repoquery kernel-core
Last metadata expiration check: 1:09:25 ago on Fri 01 Dec 2023 11:55:35 AM UTC.
kernel-core-0:5.14.0-378.el9.x86_64
kernel-core-0:5.14.0-381.el9.x86_64
kernel-core-0:5.14.0-383.el9.x86_64
kernel-core-0:5.14.0-386.el9.x86_64
kernel-core-0:5.14.0-388.el9.x86_64

さらにyum repoquery -lでパッケージ内のファイルを確認できる。

$ yum repoquery -l kernel-core-0:5.14.0-388.el9.x86_64
Last metadata expiration check: 1:13:28 ago on Fri 01 Dec 2023 11:55:35 AM UTC.
/boot/.vmlinuz-5.14.0-388.el9.x86_64.hmac
/boot/System.map-5.14.0-388.el9.x86_64
/boot/config-5.14.0-388.el9.x86_64
/boot/initramfs-5.14.0-388.el9.x86_64.img
/boot/symvers-5.14.0-388.el9.x86_64.gz
/boot/vmlinuz-5.14.0-388.el9.x86_64
/lib/modules/5.14.0-388.el9.x86_64/.vmlinuz.hmac
/lib/modules/5.14.0-388.el9.x86_64/System.map
/lib/modules/5.14.0-388.el9.x86_64/config
/lib/modules/5.14.0-388.el9.x86_64/modules.builtin
/lib/modules/5.14.0-388.el9.x86_64/modules.builtin.modinfo
/lib/modules/5.14.0-388.el9.x86_64/symvers.gz
/lib/modules/5.14.0-388.el9.x86_64/vmlinuz
/usr/share/licenses/kernel-core
/usr/share/licenses/kernel-core/COPYING-5.14.0-388.el9

アップデート可能なモジュールがあるか確認するにはyum check-updateコマンドを使う。

$ yum check-update kernel-core

Last metadata expiration check: 1:07:06 ago on Fri 01 Dec 2023 11:55:35 AM UTC.

kernel-core.x86_64                                         5.14.0-388.el9                                         baseos

現状のカーネルバージョンの確認はuname -rで確認できる。

$ uname -r
5.14.0-383.el9.x86_64

カーネルサブパッケージをインストールするにはyum installとしてやればよい。

# yum install kernel-core-0:5.14.0-388.el9
Last metadata expiration check: 0:49:12 ago on Fri 01 Dec 2023 12:23:39 PM UTC.
Dependencies resolved.
========================================================================================================================
 Package                             Architecture           Version                        Repository              Size
========================================================================================================================
Installing dependencies:
 kernel-core                         x86_64                 5.14.0-388.el9                 baseos                  20 M
 kernel-modules-core                 x86_64                 5.14.0-388.el9                 baseos                  32 M

Transaction Summary
========================================================================================================================
Install  2 Packages

Total download size: 53 M
Installed size: 89 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): kernel-core-5.14.0-388.el9.x86_64.rpm                                            5.0 MB/s |  20 MB     00:04
(2/2): kernel-modules-core-5.14.0-388.el9.x86_64.rpm                                    5.0 MB/s |  32 MB     00:06
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   7.9 MB/s |  53 MB     00:06
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                1/1
  Installing       : kernel-modules-core-5.14.0-388.el9.x86_64                                                      1/2
  Installing       : kernel-core-5.14.0-388.el9.x86_64                                                              2/2
  Running scriptlet: kernel-core-5.14.0-388.el9.x86_64                                                              2/2
  Running scriptlet: kernel-modules-core-5.14.0-388.el9.x86_64                                                      2/2
  Running scriptlet: kernel-core-5.14.0-388.el9.x86_64                                                              2/2

  Verifying        : kernel-core-5.14.0-388.el9.x86_64                                                              1/2
  Verifying        : kernel-modules-core-5.14.0-388.el9.x86_64                                                      2/2

Installed:
  kernel-core-5.14.0-388.el9.x86_64                      kernel-modules-core-5.14.0-388.el9.x86_64

Complete!

カーネルをバージョンアップするにはyum update kernel-[version]コマンドを実行し、システムを再起動して変更を有効にする。

# yum update kernel-5.14.0-388.el9
Last metadata expiration check: 0:51:59 ago on Fri 01 Dec 2023 12:23:39 PM UTC.
Dependencies resolved.
========================================================================================================================
 Package                         Architecture            Version                          Repository               Size
========================================================================================================================
Installing:
 kernel                          x86_64                  5.14.0-388.el9                   baseos                  5.6 M
Installing dependencies:
 kernel-modules                  x86_64                  5.14.0-388.el9                   baseos                   38 M

Transaction Summary
========================================================================================================================
Install  2 Packages

Total download size: 43 M
Installed size: 31 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): kernel-5.14.0-388.el9.x86_64.rpm                                                 3.0 MB/s | 5.6 MB     00:01
(2/2): kernel-modules-5.14.0-388.el9.x86_64.rpm                                         2.9 MB/s |  38 MB     00:13
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   3.3 MB/s |  43 MB     00:13
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                1/1
  Installing       : kernel-modules-5.14.0-388.el9.x86_64                                                           1/2
  Running scriptlet: kernel-modules-5.14.0-388.el9.x86_64                                                           1/2
  Installing       : kernel-5.14.0-388.el9.x86_64                                                                   2/2
  Running scriptlet: kernel-modules-5.14.0-388.el9.x86_64                                                           2/2
Running: dracut -f --kver 5.14.0-388.el9.x86_64

  Running scriptlet: kernel-5.14.0-388.el9.x86_64                                                                   2/2
  Verifying        : kernel-5.14.0-388.el9.x86_64                                                                   1/2
  Verifying        : kernel-modules-5.14.0-388.el9.x86_64                                                           2/2

Installed:
  kernel-5.14.0-388.el9.x86_64                           kernel-modules-5.14.0-388.el9.x86_64

Complete!

参考

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/assembly_the-linux-kernel_managing-monitoring-and-updating-the-kernel#what-the-kernel-is_assembly_the-linux-kernel

https://users.miraclelinux.com/technet/document/linux/training/2_1_1.html#training2_1_1