古いカーネルイメージを削除する方法

古いカーネルイメージを削除する方法

現在POP_OS 20.04(LTS)を実行しています。端末を開いてコマンドを実行すると、

dpkg --list | grep linux-image

現在(6.0.12)と最新(5.17.5)の両方がインストールされているように見える画像のリスト、バージョンセット5.0の約9個の画像とバージョンセット5.3の6個の画像、および4.18の画像1個と1個の画像を返します。 5.4から。 コンソールに古い画像が表示される

以前はシナプティックを使用してシステムから古いカーネルを削除していましたが、何らかの理由でlinux-imageを検索すると(インストールされたイメージを一番上に並べ替える)、現在および最新のカーネルのみがInstalledとしてマークされます。 〜ボックスは次のとおりです。緑。これらの古い 5.0/5.3 イメージは検索結果に表示されません。 古い画像はシナプスには表示されません

Stacer アンインストーラも見つかりません。 ステーサーが古い画像を見つけることができません

なぜこれらのイメージがコンソールに表示されますが、シナプスには表示されないのかを教えることができる人はいますか?彼らはシステムで何をしていますか?本当にシステムにありますか?私の家のパーティションのスペースを占める場合安全に削除するにはどうすればよいですか?

覚えておくべき考慮事項の1つは、システムがPOP_OSバージョン18.10で始まり、各バージョンが20.04(LTS)にアップグレードされたことです。これがそれと関係があるかどうかはわかりませんが、。もう一つの考えは、これが回復パーティションに関連している可能性があることです。しかし、そのような多くのバージョンのカーネルがどのように、なぜ必要なのか、なぜそんなに乱雑な方法で蓄積されるのかわかりません。

答え1

紹介する:

あなたとDebianとその派生製品の他のすべてのユーザーと同様に、私は以前のカーネルをクリーンアップする方法が必要でした。しかし、私がインターネットで見つけたものはほぼ完璧-現在のコアを除くすべてのコアを削除しました。- しかし、残念ながら彼らはまた削除します最新アップグレードしたいバージョンです。

解決策:

次のテキスト行——もっとエレガントな書き込み方法があるかもしれません。- これら2つを除くすべてのコアを削除します。現在のそして最新コア。私は私のドッグフードを食べ、テストされ、私のUbuntu 22.04ホストで動作することが知られていると言うことができます。

テスト(変更は適用されません):

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}' | xargs sudo apt-get purge

変更承認(上記のコマンド-yの場合):apt-get purge

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}' | xargs sudo apt-get -y purge

仕組み:

パート1:すべてのコアとヘッダーを一覧表示します。入らないようにするgrep -V)現在の項目:

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]'

パート2dpkg --list:出力からカーネルとヘッダーを含む列のみを印刷します。

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}'

3番目の部分: 次に、2 番目の列に基づいて昇順にリストをソートします。

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2

パート4:リスト印刷入らないようにする最後の(2)行はカーネルとヘッダです最新カーネルバージョン:

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2

第五部:2番目の列をソートした後、カーネルとヘッダーパッケージ名のみを印刷します。

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}'

パート6: 最後に、両方を除いてリストを整理した後現在のそして最新xargsカーネルバージョンでは、すべてのラインを噛むためのフィードを提供しています。apt-get -y purge

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}' | xargs sudo apt-get -y purge

結論として:

上記を書くためのよりエレガントで簡潔な方法があるかもしれませんが、この方法は私の役割を果たします。とにかく、これがあなたを救ってくれることを願っています -他の人- ちょっとあります -

答え2

rc各行の先頭のタグは、パッケージが削除されたが構成されていることを示します。つまり構成ファイルを除くすべての内容が削除されました。デフォルトでは、この状態のパッケージはSynapticには表示されません。

削除するパッケージを一覧表示して使用またはsudo dpkg --purge削除できます。sudo apt purgesudo apt autoremove --purge しなければならない表示せずに自動的に消去します。

関連情報