#author("2025-08-15T17:31:35+00:00","default:sysosa","sysosa") #author("2025-08-15T18:00:07+00:00","default:sysosa","sysosa") 本家様 [[https://kernel.org/>+https://kernel.org/]] linuxの本質. kernelとほかGNUアプリの集合体で各種ディストリが用意されている. 各ディストリビューターがどのバージョンのkernelを採用したかは [[https://distrowatch.com/?language=JP>+https://distrowatch.com/?language=JP]] を参照かな. RockyLinux8は RHEL8系を踏襲するので kernel は kernel-4.18 です。 ですが、 RockyLinux 8.5は「4.18.0-348」、8.6は「4.18.0-372.9.1」と同じ「4.18.0」でもversionが上がれば、リビジョンもどんどんアップします. 加えて同じ Rockylinux 8.5 の「4.18.0-348」であっても 8.6 に上がるまでの間に途中途中でkernelのupdateがあります。 #code(nonumber){{ RockyLinux8.5 --> RockyLinux8.6 --> RockyLinux8.7 --> RockyLinux8.8 --> RockyLinux8.9 --> RockyLinux8.10 初回 4.18.0-384 初回 4.18.0-372.9.1 初回 4.18.0-425.3.1 初回 4.18.0-477.10.1 初回 4.18.0-513.5.1 初回 4.18.0-553 4.18.0-384.2.1 4.18.0-372.13.1 4.18.0-425.10.1 4.18.0-477.13.1 4.18.0-513.9.1 4.18.0-553.5.1 4.18.0-384.7.1 4.18.0-372.16.1 4.18.0-425.13.1 4.18.0-477.15.1 4.18.0-513.11.1 4.18.0-553.8.1 4.18.0-384.12.2 4.18.0-372.19.1 4.18.0-425.19.1 4.18.0-477.21.1 4.18.0-513.18.1 4.18.0-553.16.1 4.18.0-384.20.1 4.18.0-372.26.1 4.18.0-477.27.1 4.18.0-513.24.1 4.18.0-553.22.1 4.18.0-384.23.1 4.18.0-372.32.1 4.18.0-553.27.1 4.18.0-553.30.1 : 最新 4.18.0-553.66.1 }} ここで注意なのがRAIDカードさんやnicカードの提供ドライバーは各バージョンの初回kernelのみ対応とかが多いです updateしてしまったkernelにそのドライバーをインストールしても使えない、反映されないことが多々あります. dkms対応をとったdriverならupdateされたkernelに順応してdriverをソースからその場で作ってくれます. 便利ですが、driverをコンパイルできる環境が必須となります. このupdateですが、securityのためだったり機能的問題の解消だったり様々ですが、上げるかそのままにするかはポリシー次第. 「学内ネットにつなぐものは常に最新状態を保つこと」という箇所だったら適時のupdateは必要なのかなと思います。 そうしてupdateしてrebootを繰り返すと/boot に使わないkernelとか残ります。/bootが512MBとかなら圧迫する可能性もあります。 今現在、どのようなkernelを持っているかは下記コマンドで把握できます #code(nonumber){{ [root@c2 ~]# grubby --info=ALL | grep -e index -e ^kernel -e title index=0 kernel="/boot/vmlinuz-6.15.9-1.el9.elrepo.x86_64" title="Rocky Linux (6.15.9-1.el9.elrepo.x86_64) 9.6 (Blue Onyx)" index=1 kernel="/boot/vmlinuz-5.14.0-570.28.1.el9_6.x86_64" title="Rocky Linux (5.14.0-570.28.1.el9_6.x86_64) 9.5 (Blue Onyx)" index=2 kernel="/boot/vmlinuz-5.14.0-503.14.1.el9_5.x86_64" title="Rocky Linux (5.14.0-503.14.1.el9_5.x86_64) 9.5 (Blue Onyx)" index=3 kernel="/boot/vmlinuz-0-rescue-82374bb455b44a92bdf399123a19d652" title="Rocky Linux (0-rescue-82374bb455b44a92bdf399123a19d652) 9.5 (Blue Onyx)" [root@c2 ~]# }} この場合は合計4つのカーネルをもってます. いま使っているkernelは「uname -r」で判明します #code(nonumber){{ [root@c2 ~]# uname -r 5.14.0-503.14.1.el9_5.x86_64 [root@c2 ~]# }} reboot後に適用したいkernelは「index」もしくは「kernel-path」で指定します #code(nonumber){{ [root@c2 ~]# grubby --set-default=/boot/vmlinuz-5.14.0-570.28.1.el9_6.x86_64 or [root@c2 ~]# grubby --set-default-index=1 }} 削除。リストからエントリーを削除します. その後にdnfからも削除します #code(nonumber){{ [root@c2 ~]# grubby --remove-kernel=/boot/vmlinuz-6.15.9-1.el9.elrepo.x86_64 <-- kernel-mlのパッケージ [root@c2 ~]# dnf remove kernel-ml* }} ***ELRepoでRockyLinux9のkernelを更新してみる [#w593b162] 各種LinuxOSに搭載されている kernel を丸ごと切り替えることは可能です. ただコンパイル操作が必要で面倒かな. &size(10){参照 [[linuxカーネル再構築]]}; 一応、他のパッケージと同様にdnfでkernelも変更することができるリポジトリがあり、 ここ[[https://elrepo.org/wiki/doku.php?id=start>+https://elrepo.org/wiki/doku.php?id=start]]でRHEL系のOS向けカーネルが提供されている カーネルを変更することで、恩恵として動作が早くなることが多いです. &size(10){計算が早くなるとは断言できませんけど}; だが、そのディストリビューターのサポートから外れます. もともと保証なんてないって思いますが、質問が出来なくなる事にご留意ください. 使うのは ELRepo の kernel-ml(mainline stable)版 ELRepoのリポジトリを組み込めば更新できる #code(nonumber){{ [root@rockylinux9 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org [root@rockylinux9 ~]# dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm -y }} &size(10){提供されているパッケージ[[kernel/repository]]}; 現在導入されているkernelの確認 #code(nonumber){{ [root@rockylinux9 ~]# cat /etc/redhat-release Rocky Linux release 9.5 (Blue Onyx) [root@rockylinux9 ~]# dnf list installed |grep "^kernel" kernel.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-core.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-devel.x86_64 5.14.0-503.14.1.el9_5 @AppStream kernel-headers.x86_64 5.14.0-503.14.1.el9_5 @AppStream kernel-modules.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-modules-core.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-srpm-macros.noarch 1.0-13.el9 @AppStream kernel-tools.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-tools-libs.x86_64 5.14.0-503.14.1.el9_5 @anaconda [root@rockylinux9 ~]# }} この状態でELRepo のカーネルを入れてみる elrepo-kernelリポジトリで提供されているカーネルパッケージは「kernel-lt」と「kernel-ml」の2つある. 「kernel-lt」は長期サポート版 &size(10){長期サポート版って言っても kernel.org では複数の長期サポート版があって、そのなかの1つだけが選ばれている}; 「kernel-ml」はmain linestable版. &size(10){main linestable版って実は他にあるstable版よりも最新版で出来立てのカーネル. 「長期サポート」ほどこなれてない枯れてないカーネル. だから不安定って訳ではない. バグもあるだろうが、それは他のカーネルとして同じ.}; #code(nonumber){{ [root@rockylinux9 ~]# dnf --enablerepo=elrepo-kernel install kernel-ml kernel-ml-core kernel-ml-devel kernel-ml-devel-matched kernel-ml-modules kernel-ml-modules-extra kernel-ml-tools kernel-ml-tools-libs kernel-ml-tools-libs-devel -y : Installing: kernel-ml x86_64 6.14.6-1.el9.elrepo elrepo-kernel 32 k kernel-ml-core x86_64 6.14.6-1.el9.elrepo elrepo-kernel 56 M kernel-ml-devel x86_64 6.14.6-1.el9.elrepo elrepo-kernel 18 M kernel-ml-devel-matched x86_64 6.14.6-1.el9.elrepo elrepo-kernel 32 k kernel-ml-modules x86_64 6.14.6-1.el9.elrepo elrepo-kernel 50 M kernel-ml-modules-extra x86_64 6.14.6-1.el9.elrepo elrepo-kernel 1.2 M kernel-ml-tools x86_64 6.14.6-1.el9.elrepo elrepo-kernel 289 k replacing kernel-tools.x86_64 5.14.0-503.14.1.el9_5 kernel-ml-tools-libs x86_64 6.14.6-1.el9.elrepo elrepo-kernel 44 k replacing kernel-tools-libs.x86_64 5.14.0-503.14.1.el9_5 kernel-ml-tools-libs-devel x86_64 6.14.6-1.el9.elrepo elrepo-kernel 33 k : [root@rockylinux9 ~]# grubby --info=ALL index=0 kernel="/boot/vmlinuz-6.14.6-1.el9.elrepo.x86_64" : index=1 kernel="/boot/vmlinuz-5.14.0-503.14.1.el9_5.x86_64" : index=2 kernel="/boot/vmlinuz-0-rescue-ae44d20cabbc434083b536e0b83f239d" : [root@rockylinux9 ~]# grubby --default-kernel /boot/vmlinuz-6.14.6-1.el9.elrepo.x86_64 <-- reboot後に適用されるカーネルです [root@rockylinux9 ~]# grubby --default-index 0 <-- reboot後に適用されるカーネルのindex番号 [root@rockylinux9 ~]# }} 「grubby --set-default-index=1」なら「5.14.0-503.14」が適用されます &size(10){kernel-ml-headersは不要みたい}; &size(10){あとsecure bootは無効にしてください}; 再起動後, #code(nonumber){{ [root@rockylinux9 ~]# uname -r 6.4.12-1.el9.elrepo.x86_64 [root@rockylinux9 ~]# (ちなみに) [root@rockylinux9 ~]# find /lib/modules -name btrfs.ko.xz /lib/modules/6.4.12-1.el9.elrepo.x86_64/kernel/fs/btrfs/btrfs.ko.xz [root@rockylinux9 ~]# find /lib/modules -name orangefs.ko.xz /lib/modules/6.4.12-1.el9.elrepo.x86_64/kernel/fs/orangefs/orangefs.ko.xz [root@rockylinux9 ~]# }} っとカーネルが変わりました. それと btrfs と orangefs カーネルモジュールが存在します ***不要なkernelの削除 [#rc6b18d7] 参照 [[https://www.centlinux.com/2022/10/safely-remove-old-kernels-in-rocky-linux-9.html>+https://www.centlinux.com/2022/10/safely-remove-old-kernels-in-rocky-linux-9.html]] #code(nonumber){{ dnf -y remove --oldinstallonly --setopt installonly_limit=2 kernel }} これは今使っているカーネルとrescure向けの2つのみを残す感じかな ***rockylinux8に入れてみる [#hf3bc768] #code(nonumber){{ [root@rockylinux ~]# cat /etc/redhat-release Rocky Linux release 8.8 (Green Obsidian) [root@rockylinux ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org [root@rockylinux ~]# dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm }} 今時点でインストールされているkernel関係は #code(nonumber){{ [root@rockylinux ~]# dnf list installed |grep "^kernel" kernel.x86_64 4.18.0-477.10.1.el8_8 @anaconda kernel-core.x86_64 4.18.0-477.10.1.el8_8 @anaconda kernel-devel.x86_64 4.18.0-477.10.1.el8_8 @anaconda kernel-headers.x86_64 4.18.0-477.10.1.el8_8 @anaconda kernel-modules.x86_64 4.18.0-477.10.1.el8_8 @anaconda kernel-tools.x86_64 4.18.0-477.10.1.el8_8 @anaconda kernel-tools-libs.x86_64 4.18.0-477.10.1.el8_8 @anaconda [root@rockylinux ~]# }} なので、 #code(nonumber){{ [root@rockylinux ~]# dnf install --enablerepo=elrepo-kernel \ kernel-ml \ kernel-ml-core \ kernel-ml-devel \ kernel-ml-modules \ kernel-ml-modules-extra (dkmsものがあればここで作り直される. nvidia.koとか) [root@rockylinux ~]# [root@rockylinux ~]# dnf swap --enablerepo=elrepo-kernel kernel-tools kernel-ml-tools : Installing: kernel-ml-tools x86_64 6.8.2-1.el8.elrepo elrepo-kernel 358 k Installing dependencies: kernel-ml-tools-libs x86_64 6.8.2-1.el8.elrepo elrepo-kernel 138 k Removing: kernel-tools x86_64 4.18.0-477.10.1.el8_8 @anaconda 703 k Removing unused dependencies: kernel-tools-libs x86_64 4.18.0-477.10.1.el8_8 @anaconda 23 k : [root@rockylinux ~]# [root@rockylinux ~]# dnf install --enablerepo=elrepo-kernel kernel-ml-tools-libs-devel [root@rockylinux ~]# reboot [root@rockylinux ~]# uname -r 6.8.2-1.el8.elrepo.x86_64 [root@rockylinux ~]# }}