ウェブサイト検索

Debian および Ubuntu で古い未使用のカーネルを削除する方法


前回の記事では、CentOS/RHEL/Fedora で古い未使用のカーネルを削除する方法を説明しました。この記事では、Debian および Ubuntu システムで古い未使用のカーネルを削除する方法を説明しますが、先に進む前に、セキュリティ修正、新しいカーネル機能、更新されたドライバーなどを利用するために最新バージョンをインストールすることをお勧めします。もっとずっと。

Ubuntu および Debian でカーネルを最新バージョンにアップグレードするには、このガイドに従ってください。

  1. Ubuntuでカーネルを最新バージョンにアップグレードする方法

重要: アップデートで問題が発生した場合に備えて、古いカーネルを少なくとも 1 つまたは 2 つ保持しておくことをお勧めします。

システム上で実行されている Linux カーネルの現在のバージョンを確認するには、次のコマンドを使用します。

uname -sr

Linux 4.12.0-041200-generic

システムにインストールされているすべてのカーネルを一覧表示するには、次のコマンドを実行します。

dpkg -l | grep linux-image | awk '{print$2}'

linux-image-4.12.0-041200-generic
linux-image-4.8.0-22-generic
linux-image-extra-4.8.0-22-generic
linux-image-generic

Debian および Ubuntu で古い未使用のカーネルを削除する

以下のコマンドを実行して、特定のlinux-image を構成ファイルとともに削除し、grub2 構成を更新し、最後にシステムを再起動します。

sudo apt remove --purge linux-image-4.4.0-21-generic
sudo update-grub2
sudo reboot
[sudo] password for tecmint: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  linux-generic linux-headers-4.8.0-59 linux-headers-4.8.0-59-generic linux-headers-generic linux-image-4.8.0-59-generic linux-image-extra-4.8.0-59-generic linux-image-generic
Suggested packages:
  fdutils linux-doc-4.8.0 | linux-source-4.8.0 linux-tools
Recommended packages:
  thermald
The following packages will be REMOVED:
  linux-image-4.8.0-22-generic* linux-image-extra-4.8.0-22-generic*
The following NEW packages will be installed:
  linux-headers-4.8.0-59 linux-headers-4.8.0-59-generic linux-image-4.8.0-59-generic linux-image-extra-4.8.0-59-generic
The following packages will be upgraded:
  linux-generic linux-headers-generic linux-image-generic
3 upgraded, 4 newly installed, 2 to remove and 182 not upgraded.
Need to get 72.0 MB of archives.
After this operation, 81.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 linux-headers-4.8.0-59 all 4.8.0-59.64 [10.2 MB]
Get:2 http://us.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 linux-headers-4.8.0-59-generic amd64 4.8.0-59.64 [811 kB]                                                               
Get:3 http://us.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 linux-generic amd64 4.8.0.59.72 [1,782 B]                                                                               
Get:4 http://us.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 linux-headers-generic amd64 4.8.0.59.72 [2,320 B]                                                                       
Get:5 http://us.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 linux-image-4.8.0-59-generic amd64 4.8.0-59.64 [23.6 MB]                                                                
Get:6 http://us.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 linux-image-extra-4.8.0-59-generic amd64 4.8.0-59.64 [37.4 MB]                                                          
Get:7 http://us.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 linux-image-generic amd64 4.8.0.59.72 [2,348 B]                                                                         
Fetched 72.0 MB in 7min 12s (167 kB/s)                                                                                                                                                       
Selecting previously unselected package linux-headers-4.8.0-59.
(Reading database ... 104895 files and directories currently installed.)
Preparing to unpack .../0-linux-headers-4.8.0-59_4.8.0-59.64_all.deb ...
Unpacking linux-headers-4.8.0-59 (4.8.0-59.64) ...
Selecting previously unselected package linux-headers-4.8.0-59-generic.
Preparing to unpack .../1-linux-headers-4.8.0-59-generic_4.8.0-59.64_amd64.deb ...
Unpacking linux-headers-4.8.0-59-generic (4.8.0-59.64) ...
Preparing to unpack .../2-linux-generic_4.8.0.59.72_amd64.deb ...
Unpacking linux-generic (4.8.0.59.72) over (4.8.0.22.31) ...
Preparing to unpack .../3-linux-headers-generic_4.8.0.59.72_amd64.deb ...
Unpacking linux-headers-generic (4.8.0.59.72) over (4.8.0.22.31) ...
Selecting previously unselected package linux-image-4.8.0-59-generic.
Preparing to unpack .../4-linux-image-4.8.0-59-generic_4.8.0-59.64_amd64.deb ...
Done.
Removing linux-image-4.8.0-22-generic (4.8.0-22.24) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.8.0-22-generic /boot/vmlinuz-4.8.0-22-generic
update-initramfs: Deleting /boot/initrd.img-4.8.0-22-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.8.0-22-generic /boot/vmlinuz-4.8.0-22-generic
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.12.0-041200-generic
Found initrd image: /boot/initrd.img-4.12.0-041200-generic
Found linux image: /boot/vmlinuz-4.8.0-59-generic
done
...

この方法でも問題なく機能しますが、保持するカーネル数の指定などの便利なオプションを備えた上記のすべてのコマンドを 1 つのプログラムに結合する「屏風」と呼ばれる便利なスクリプトを使用する方が、より信頼性が高く効率的です。システム上で。

システムから古いカーネルとヘッダー パッケージを削除するために使用されるpurge-old-kernels と呼ばれるプログラムを提供するbyobu スクリプト パッケージをインストールします。

sudo apt install byobu

次に、古いカーネルを次のように削除します (以下のコマンドを使用すると、システム上に 2 つのカーネルを保持できます)。

sudo purge-old-kernels --keep 2

Linux カーネルに関する次の関連記事もお読みください。

  1. Linux でカーネル モジュールをロードおよびアンロードする方法
  2. カーネル ランタイム パラメータを永続的および非永続的な方法で変更する方法

この記事では、Ubuntu および Debian システムで古い未使用のカーネル イメージを削除する方法について説明しました。以下からのフィードバックを通じてご意見を共有できます。