Server

Linux /boot 肥大化対策!不要なカーネルを安全に削除する方法


Linuxを使っていると、システムのアップデートを重ねるうちに /boot パーティションの空き容量が減っていくことがあります。これは、新しいカーネルがインストールされるたびに古いカーネルが残り続け、領域を圧迫するためです。

この記事では、dnf を使用して不要な古いカーネルを安全に削除し、/boot の空き容量を確保する手順を解説します。


1. 現状確認:/boot の使用状況とカーネルバージョン

まず、現在の /boot の状態と、インストールされているカーネルのバージョンを確認しましょう。

/boot の空き容量を確認

以下のコマンドで /boot パーティションの使用状況を確認します。

Bash

df -h /boot

インストールされているカーネルを確認

システムにインストールされているすべてのカーネルパッケージをバージョン順に表示します。

Bash

rpm -qa kernel | sort -V

現在使用中のカーネルを確認

ここが重要です! 現在システムが起動しているカーネルのバージョンを確認します。このカーネルは絶対に削除してはいけません

Bash

uname -r

2. 不要なカーネルの削除

現在のカーネルバージョンを確認したら、不要な古いカーネルを削除していきます。dnf コマンドを使うと安全かつ効率的に作業できます。

最も安全な削除方法 (dnf remove --oldinstallonly)

dnf には、古いカーネルを自動的に識別して削除する便利なオプションがあります。--setopt=installonly_limit=2 を指定することで、最新のカーネルと、その一つ前のカーネルを残して、それより古いカーネルを削除します。

Bash

sudo dnf remove --oldinstallonly --setopt=installonly_limit=2 kernel

このコマンドを実行すると、削除されるカーネルの一覧が表示され、確認を求められます。内容をよく確認し、現在使用中のカーネルや残したいカーネルが含まれていないことを確認したら、y を入力して実行してください。

注意点:

もし、uname -r で確認した現在起動中のカーネルが、インストールされているカーネルの中で最も古い(または古い方から数えて2番目など)である場合は、まずシステムを最新のカーネルで再起動することをおすすめします。

システムが最新のカーネルで安定して動作することを確認してから、上記のコマンドを実行してください。

手動で特定のカーネルを削除する場合(上級者向け)

特定のカーネルバージョンだけを削除したい場合は、手動で dnf remove コマンドを使用します。

まず、削除したい古いカーネルのパッケージ名を特定します(例: kernel-5.14.0-503.40.1.el9_5.x86_64)。

Bash

sudo dnf remove kernel-古いカーネルのバージョン

3. /boot の空き容量の再確認

カーネルの削除が完了したら、再度 /boot の空き容量を確認し、容量が増えていることを確認しましょう。

Bash

df -h /boot

4. 今後の対策と注意点

/boot の肥大化を未然に防ぐために、以下の点を心に留めておきましょう。

  • 定期的なクリーンアップ: 新しいカーネルがリリースされてシステムをアップデートするたびに、古いカーネルが蓄積されます。上記で紹介した dnf remove --oldinstallonly --setopt=installonly_limit=2 kernel コマンドを定期的に実行する習慣をつけましょう。
  • システム再起動の重要性: カーネルのアップデート後には、必ずシステムを再起動して新しいカーネルで起動するようにしてください。これにより、古いカーネルが不要となり、安全に削除できるようになります。
  • /boot パーティションサイズ: もし可能であれば、OSをインストールする際に /boot パーティションのサイズを少し余裕を持って確保することも将来的な対策になります。ただし、既存のパーティションサイズ変更はリスクを伴うため、慎重な計画と完全なバックアップが必要です。

これらの手順で、あなたのLinuxシステムの /boot パーティションは常に快適な状態を保てるはずです。

-Server
-, , ,