Rocky Linux 第10回「Rocky Linuxで古いKernelを削除する」

/bootの容量不足でエラー発生

Raspberry Pi 4で稼働しているRocky Linuxで、dnf upgradeを実行していたところ次のようなメッセージが表示されてエラーになってしまいました。

  scriptletの実行中: kernel-core-5.14.0-284.30.1.el9_2.aarch64          149/149 

cp: error writing '/boot/initramfs-0-rescue-0323a9564f384fa0b31af53f9ea7ec4f.img': No space left on device
dracut: dracut: creation of /boot/initramfs-0-rescue-0323a9564f384fa0b31af53f9ea7ec4f.img failed
cp: cannot stat '/lib/modules/5.14.0-284.30.1.el9_2.aarch64/bls.conf': No such file or directory
sed: can't read /boot/loader/entries/0323a9564f384fa0b31af53f9ea7ec4f-0-rescue.conf: No such file or directory
警告: %posttrans(kernel-core-5.14.0-284.30.1.el9_2.aarch64) スクリプトの実行に失敗しました。終了ステータス 3
Error in POSTTRANS scriptlet in rpm package kernel-core

/bootNo space left on deviceということですからdfコマンドで様子を見てみます。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         57G  7.2G   50G   13% /
devtmpfs         3.6G     0  3.6G    0% /dev
tmpfs            3.9G     0  3.9G    0% /dev/shm
tmpfs            1.6G  9.5M  1.6G    1% /run
/dev/mmcblk0p1   286M  247M   39M   87% /boot
tmpfs            782M   52K  782M    1% /run/user/42
tmpfs            782M   36K  782M    1% /run/user/1000

/bootの残り容量が39MBになってしまっています。

これは公開されているRaspberry Pi用のRocky LinuxのイメージをmSDにコピーしてGNOME デスクトップ化しているもので、何度かdnf upgradeを実行している最中に発生してしまったものです。

そこで、このエラーを解消して行きたいと思います。

インストール済のKernel

現在、インストールされているカーネルを調べてみます。

$ dnf list --installed | grep kernel
kernel-core.aarch64 5.14.0-284.25.1.el9_2 @baseos
kernel-core.aarch64 5.14.0-284.30.1.el9_2 @baseos
kernel-modules.aarch64 5.14.0-284.25.1.el9_2 @baseos
kernel-modules.aarch64 5.14.0-284.30.1.el9_2 @baseos
kernel-modules-core.aarch64 5.14.0-284.25.1.el9_2 @baseos
kernel-modules-core.aarch64 5.14.0-284.30.1.el9_2 @baseos
kernel-tools.aarch64 5.14.0-284.30.1.el9_2 @baseos
kernel-tools-libs.aarch64 5.14.0-284.30.1.el9_2 @baseos
raspberrypi2-kernel4.aarch64 6.1.23-v8.1.el9.altarch @rockyrpi
raspberrypi2-kernel4.aarch64 6.1.31-v8.1.el9.altarch @altarch-rockyrpi

インストールされているバージョンが、5.146.1になっていますが、それぞれ2バージョンずつインストールされています。通常は、このように直近のバージョンを残しておくのが良いかも知れませんが、ここでは古いほうのバージョンを削除してしまおうと思います。

古いKernelの削除

そこで、古いKernelとして5.14.0-284.25.16.1.23を削除しようと思います。

$ sudo dnf remove -y kernel-core-5.14.0-284.25.1.el9_2
依存関係が解決しました。
================================================================================
 パッケージ             Arch       バージョン                  Repo       サイズ
================================================================================
削除中:
 kernel-core            aarch64    5.14.0-284.25.1.el9_2       @baseos     70 M
依存関係パッケージの削除:
 kernel-modules         aarch64    5.14.0-284.25.1.el9_2       @baseos     13 M
 kernel-modules-core    aarch64    5.14.0-284.25.1.el9_2       @baseos     27 M
トランザクションの概要
================================================================================
削除  3 パッケージ
(以下略)

ここで、dnf removeを実行する際にアーキテクチャーであるaarch64を省略している点に注意して下さい。依存関係によって3つのパッケージが削除されました。

続けて、6.1.23を削除します。

$ sudo dnf remove -y raspberrypi2-kernel4-6.1.23
依存関係が解決しました。
================================================================================
 パッケージ             Arch      バージョン                  Repo        サイズ
================================================================================
削除中:
 raspberrypi2-kernel4   aarch64   6.1.23-v8.1.el9.altarch     @rockyrpi    43 M
トランザクションの概要
================================================================================
削除  1 パッケージ
(以下略)

ここでもdnf removeコマンドの実行時に、アーキテクチャーであるaarch64を省略して実行しています。

削除後のディスク容量を見てみます。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         57G  7.1G   50G   13% /
devtmpfs         3.6G     0  3.6G    0% /dev
tmpfs            3.9G     0  3.9G    0% /dev/shm
tmpfs            1.6G  9.5M  1.6G    1% /run
/dev/mmcblk0p1   286M  153M  133M   54% /boot
tmpfs            782M   52K  782M    1% /run/user/42
tmpfs            782M   36K  782M    1% /run/user/1000

/bootの残り容量が、133MBまでになりました。これで、しばらくの間はdnf upgrade/bootの容量不足になることも無いでしょう。

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!
目次