目的 |
古いカーネルの削除 |
OS |
ubuntu 20.04 LTS Focal Fossa |
Difficulty level |
Easy |
Root privileges |
Yes |
Requirements |
Linux terminal |
Table of Contents
1. カーネルのアップグレード
Ubuntu 20.04ではデフォルトで自動更新が有効になっています.
更新設定は, /etc/apt/apt.conf.d/20auto-upgrades
ファイルに記載があります.
1
2
3
| % cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
|
APT::Periodic::Update-Package-Lists
: 1の場合, 自動的にアップデート可能なパッケージリストを更新. 0の場合は無効
APT::Periodic::Unattended-Upgrade
: 1の場合, 自動的にアップデートを適用. 0の場合は無効
コマンドで明示的にupdateする場合
1
| % sudo apt update && sudo apt dist-upgrade
|
なぜ古いカーネルを削除するのか?
Ubuntu ではカーネルが頻繁に更新され, そのたびに新しいカーネルが /boot
にインストールされます.
/boot
の容量がそのたびに大きくなってしまう一方, /boot
はパーティションが分けられているケースが多く,
定期的にメンテナンスをしないと /boot
のディスク容量が足りないと怒られるリスクがあります.
2. 実践編
現在のカーネルバージョンの確認
1
2
| % uname -r
5.15.0-46-generic
|
インストール済みのカーネル一覧の確認
1
| % dpkg --get-selections | grep linux-
|
dpkg --get-selections
コマンドは全パッケージのインストールされたものと, インストールされたが除去されたものを得ることができます.
ちなみにですが, dpkg --get-selections
の出力結果をtxtファイルに出力して, それを対象に apt install
コマンドを走らせるようにすれば,
異なる機器間で install packageを揃えることができ, このような使い方もされることがあります.
削除対象の決定
1
| % dpkg --get-selections | grep "linux-"|grep -v "deinstall"|grep -v "5.15.0-46"|column -t| cut -d" " -f1 > purge_dist_list_20220716.txt
|
- 間違いがないように, テキストエディタで明示的にどのkernel fileを削除するか指定
- 削除するパッケージを明示的に
purge_dist_list_20220716.txt
に記載
- 削除候補外は
purge_dist_list_20220716.txt
からそのパッケージ名を消します
削除テスト
1
| % cat purge_dist_list_20220716.txt| sudo xargs apt purge --dry-run
|
削除実行
1
| % cat purge_dist_list_20220716.txt| sudo xargs apt purge -y
|
実行結果確認
1
| % dpkg --get-selections | grep linux-
|
Appendix
grepコマンドで一致しない文字列を検索する
grep -v
オプションを指定した文字列を含まない文字列検索を実行することができます.
man
コマンドで確認してみると
1
2
3
4
| Matching Control
-v, --invert-match
Invert the sense of matching, to select non-
matching lines.
|
Syntax
1
| % grep -v "除外文字列" <FILE PATH>
|
References
オンラインマテリアル
Share Buttons
Share on:
Feature Tags
Leave a Comment
(注意:GitHub Accountが必要となります)