skip to content
barorin&?

Ubuntuから古いLinuxカーネルを削除してディスク容量を確保する

/ 2 min read

Table of Contents

はじめに

古いLinuxカーネルを安全に削除する方法を残しておきます。

方法

コマンド

このコマンドは以下のことを実行します。

  • 現在使用していない古いカーネルを特定
  • 現在動作中のカーネルは保護
  • 不要なカーネルパッケージを完全に削除
Terminal window
$ dpkg -l 'linux-' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]\)./\1/;/[0-9]/!d' | xargs sudo apt -y purge

コマンドの解説

  1. dpkg -l 'linux-*'
    すべての「linux-」で始まるパッケージを一覧表示します

  2. sed '/^ii/!d'
    インストール済みのパッケージのみを残します(‘ii’は installed のステータス)

  3. uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/"
    現在実行中のカーネルバージョンを取得し、末尾の説明部分を削除します

  4. sed '/'"$(上記のコマンド)"'/d'
    現在使用中のカーネルバージョンを含むパッケージを除外します(現在使用中のカーネルは削除しない)

  5. s/^[^ ]* [^ ]* \([^ ]*\).*/\1/
    パッケージ名のみを抽出します

  6. /[0-9]/!d
    バージョン番号を含むパッケージのみを残します

  7. xargs sudo apt -y purge
    抽出されたパッケージを完全に削除します(設定ファイルも含めて)