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
パーティションは常に快適な状態を保てるはずです。