GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04のブートから古いカーネルバージョンを削除する方法

Canonicalは、システムのリソースを可能な限り管理するためのカーネル更新を含む、Ubuntu18.04システムの定期的な更新を提供します。この記事では、Ubuntu18.04のブートメニューから古いカーネルを削除するためのいくつかの異なる方法を提供します。新しいカーネルをインストールしても、古いカーネルは削除されません。これは、新しいカーネルを間違えた場合やその他の理由で起動するのに役立つためです。古いカーネルは、他の何かに役立つ可能性のあるいくつかのスペースを消費することに注意してください。カーネルはすべてのアプリケーションとのインターフェースを担当するため、互換性のためにカーネルを更新する必要がある場合があります。

古いカーネルを確認する

Ubuntu 18.04システムの現在のブートカーネルとの間違いを避けるために、必ずバージョンを確認してください

# uname -r
4.15.0-23-generic

古いカーネルを削除する前に、まずシステムに古いカーネルが存在するかどうかを確認する必要があります。これを行うには、システムの起動時にグラブを確認できます

Ubuntuの詳細オプション」を選択できます。 リストの一番上に現在のカーネルが表示され、 4.15.0.13-の直後に古いカーネルが表示されます。 ge neric

コマンドラインで古いカーネルをチェックする別の方法があります。これは、現在のカーネルではなく、古いカーネルを一覧表示するのに役立ちます

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
ii  linux-image-4.15.0-13-generic    4.15.0-13.14        amd64      Linux kernel image for version 4.15.0 on 64 bit x86 SMP

iiでマークされた古いカーネルが効果的にインストールされていることがわかります。 アップグレードまたは手動インストールを行った場合は、より古いカーネルを見ることができます。カーネルをチェックすると、いくつかのステータスがあります

  • ii :カーネル/パッケージがインストールされ、削除できることを意味します。
  • rc :カーネルがすでに削除されていることを示します。
  • iU :は、削除しないように警告するようなものです。つまり、インストールされていませんが、 aptにインストールするためにキューに入れられています 。

何かをする前に、ステータスを確認してください。いくつかのカーネルがインストールされていることがわかったので、次に、それぞれまたは全体を削除するためのさまざまな方法を見てみましょう。

1)コマンドラインで古いカーネルを削除します

古いカーネルを手動でインストールした場合でも、システムアップデートを介して直接インストールした場合でも、古いカーネルを削除するための便利なコマンドがいくつかあります。通常は定期的なシステムアップデートでインストールしますが、何らかの理由で手動インストールを決定することもできます。

a)aptコマンド

apt コマンドは、Ubuntu18.04システムで不要な古いカーネルを含むパッケージをアンインストールするのに役立ちます。自動的にインストールされたものは以下のように確認できます

# apt-mark showauto 'linux-image-.*'
linux-image-4.15.0-13-generic
linux-image-4.15.0-23-generic
linux-image-extra-4.15.0-13-generic
linux-image-generic

手動でインストールしたものは以下のように確認できます

# apt-mark showmanual 'linux-image-.*'

ご覧のとおり、手動でカーネルをインストールしていません。 remove を使用すると、古いカーネルをすべて削除できます。 以下のパラメータ:

# apt remove linux-image-4.15.0-13-generic
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages will be REMOVED:
 linux-image-4.15.0-13-generic* linux-image-extra-4.15.0-13-generic
....
....
you may need to re-run your boot loader[grub]

カーネルを削除するときは、必ずgrubを更新して、grubの生成中にエラーが発生するかどうかを確認してください

# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-23-generic
Found initrd image: /boot/initrd.img-4.15.0-23-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

これで、削除されたかどうかをもう一度確認できます

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
rc  linux-image-4.15.0-13-generic    4.15.0-13.14     amd64      Linux kernel image for version 4.15.0 on 64 bit x86 SMP

ステータスを確認できますrc 削除されたことを示しています。ブートメニューでも確認して、現在のブートカーネルのみが表示されることを確認できます

apt autoremoveを使用することもできます コマンドですが、このコマンドは、他のパッケージの依存関係を満たすために自動的にインストールされ、依存関係として不要になったパッケージを削除するために使用されることに注意してください。したがって、削除するパッケージのリストに存在する必要のあるパッケージがないかどうかを確認してください

# apt autoremove --purge

b)dpkgコマンド

dpkgを使用することもできます Ubuntu18.04システム上の特定のカーネルを削除するコマンド。今回は、パッケージと追加の依存関係を示す必要があります

# dpkg --purge linux-image-4.15.0-13-generic linux-image-extra-4.15.0-13-generic 
(Reading database ... 165680 files and directories currently installed.)
...
...
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-23-generic
Found initrd image: /boot/initrd.img-4.15.0-23-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
...

トレースをもう一度確認できますが、削除されたことを示す出力がないため、完全に削除されていることがわかります(rc)

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)

グラブも見ることができます

c)スクリプトの使用

古いカーネルを削除するのに役立つ、Github上のKivisadeの興味深いインタラクティブスクリプトを見つけました。それはdpkgコマンドを使用しますが、興味深いのは、削除するカーネルをリストし、あなたの意見を尋ねるという事実です。最初にgitをインストールします

# apt install git

プロジェクトのクローンを作成します

# git clone https://github.com/kivisade/kernel-purge.git
Cloning into 'kernel-purge'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), done.

フォルダに入り、許可を与えます

# cd kernel-purge && chmod +x kernel-purge.sh

スクリプトを実行します

# ./kernel-purge.sh 
Running kernel version is: 4.15.0-23
The following (unused) KERNEL packages will be removed:
linux-headers-4.15.0-13
linux-headers-4.15.0-13-generic
linux-image-4.15.0-13-generic
linux-image-extra-4.15.0-13-generic
Do you want to continue [yN]? y
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages will be REMOVED:
 linux-headers-4.15.0-13* linux-headers-4.15.0-13-generic*
 linux-image-4.15.0-13-generic* linux-image-extra-4.15.0-13-generic*
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
After this operation, 335 MB disk space will be freed.
(Reading database ... 168812 files and directories currently installed.)
...
...
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-23-generic
Found initrd image: /boot/initrd.img-4.15.0-23-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
...
...

これで、カーネルが効果的に削除されたかどうかを確認できます。出力がないため、古いカーネルは削除されています

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)

2)グラフィカルツールを使用して古いカーネルを削除します

グラフィカルツールを使用して、カーネルパッケージをアンインストールすることもできます。管理者権限が必要なため、ツールはプロセス中にパスワードを要求します。

a)Ubuntuクリーナー

Ubuntu Cleanerは、ブラウザーのキャッシュをクリーンアップし、不要なアプリを削除し、古いカーネルを撮影するように設計された、ユーザーフレンドリーなシステムユーティリティです。削除したい場合はUbuntuが役立ちます:

  • ほとんどの主要なブラウザを含むアプリケーションキャッシュ
  • Aptキャッシュ
  • 古いカーネル
  • 不要なパッケージ

パッケージはデフォルトでは公式リポジトリに存在しないため、PPAを追加する必要があります。 Ubuntu 18.04では、PPAが自動的に起動されるため、PPAを追加した後にパッケージキャッシュを更新する必要がないことに注意してください。したがって、PPAを以下のように追加します

~# add-apt-repository ppa:gerardpuig/ppa
 Official Ubuntu Cleaner stable repository
 More info: https://launchpad.net/~gerardpuig/+archive/ubuntu/ppa
Press [ENTER] to continue or Ctrl-c to cancel adding it.

Hit:1 http://cm.archive.ubuntu.com/ubuntu bionic InRelease                    
Get:2 http://cm.archive.ubuntu.com/ubuntu bionic-updates InRelease [83.2 kB]  
Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]   
Get:4 http://cm.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:5 http://security.ubuntu.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [204 B]
...
...

これでツールをインストールできます

# apt install ubuntu-cleaner
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 libpython-stdlib python python-apt python-aptdaemon
...
...

次に、ソフトウェアを起動します

次に、古いカーネルセクションを選択し、削除するカーネルを選択します

パスワードの入力を求められ、プロセスが開始されます

これで、カーネルがまだ存在するかどうかを確認できます。削除されたことを示すステータスを確認できます

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
rc  linux-image-4.15.0-13-generic    4.15.0-13.14     amd64      Linux kernel image for version 4.15.0 on 64 bit x86 SMP

b)シナプス

Synapticは、パッケージ/ソフトウェアのインストールを処理するためにDebianベースのシステムで使用されるAdvanced Packaging Tool(APT)へのグラフィカルインターフェイスです。これはユーザーフレンドリーなツールではないため、使用が非常に混乱する可能性があるため、非常に注意する必要があります。

# apt install synaptic
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 docbook-xml libept1.5.0 libgtk2-perl libpango-perl librarian0 rarian-compat
 sgml-base sgml-data xml-core

次に、アプリケーションを起動します

次に、セクション->カーネルとモジュールに移動します。 削除するカーネルを選択し、完全に削除するようにマークを付けます。リストから適切なカーネルを選択してください

確認を求められます

依存関係を自動的にマークしていることがわかります。カーネルを削除するために適用します

確認を求めます。適用

プロセスを示すウィンドウが表示されます。注意深く見ると、最後にgrubが生成されており、古いカーネルが存在しないことがわかります。

結論

これで、Ubuntu18.04のブートから古いカーネルを削除する方法がわかりました。何らかの理由で現在のカーネルで起動できない場合は、古いカーネルをすべて削除することをお勧めします。したがって、最新のものを含めて、少なくとも2つ、できれば3つのカーネルを保持することをお勧めします。推奨の理由は、起動する他のカーネルが少なくとも1つまたは2つあることです。

また読む

  • Linuxパフォーマンス分析にBCCカーネルトレースツールを使用する方法
  • Ubuntu18.04でPPAを削除および追加する方法
  • Linuxターミナルをクリアするための6つのコマンド

Ubuntu
  1. SDカードからUbuntu16.04をインストールするにはどうすればいいですか?

  2. UbuntuでPDFファイルからパスワードを削除する方法

  3. Ubuntu から aria2 をアンインストールする方法

  1. Ubuntuからソフトウェアパッケージをアンインストールまたは削除する方法

  2. 20.04リポジトリからUbuntu18.04にカーネル5.13をインストールする方法

  3. Ubuntu から VS Code と設定を削除するにはどうすればよいですか?

  1. Ubuntu 16.04、18.04、および19.04で古いカーネルを削除する方法

  2. Ubuntu16.04からUbuntu18.04にアップグレードする方法

  3. UbuntuからApacheWebサーバーを削除する方法