あまりカーネルの更新をしない人は関係ないと思いますので、必要ないと思います。
この作成されるファイルは、バックアップファイルのようなものです。
ですので、更新したけど調子が悪いといった場合は、古いカーネルバージョンを起動できるように用意してくれているのは、非常に有難いですネ。
この更新の度に作成されるファイルは、デフォルトでは自動で削除してくれません。
蓄積される一方ですので、更新を続けると残り容量が少なくなり、そのうち更新さえできなくなってしまうことがあります。
カーネルのファイルを直接削除することも可能でしょうが、これはやらない方が無難です。
CentOSには、yum-utils というパッケージが用意されています。
その中の package-cleanup コマンドを使えば、古いカーネルを簡単に削除できます。
下記では、package-cleanupコマンドでCentOS-7のkernel(カーネル)を削除する方法を解説しています。
CentOS インストール直後の状態を確認する
まずは現在の状態を確認することにします。CentOS-7.6をインストールした直後(2019-05 時点)のディスク容量です。
私の場合は、/bootに1GMが割り当てられていましたのでまだ余裕がありそうです。
インストールした条件や環境によって違ってくると思います。
/bootのディスク容量を確認します
/bootのディスク容量 確認
[root@vm ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 47G 1.5G 46G 3% /
devtmpfs 484M 0 484M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/sda1 1014M 132M 883M 13% /boot
kernel(カーネル)の確認
カーネルを確認します。CentOS-7をインストールした直後なので、カーネルは1つです。
kernel(カーネル) 確認
[root@vm ~]# rpm -q kernel
kernel-3.10.0-957.el7.x86_64
[root@vm ~]#
kernel(カーネル)をインストールする
CentOS-7のインストールした時のCentOSバージョンは、7.6.1810です。インストールした時のカーネルの更新日時は、2018-11-12になっていました。
カーネルの世代が現時点では1つしかなく削除の確認ができない為、カーネルを追加でインストールして、カーネルの世代を多くすることにします。
すでに、/boot の容量がいっぱいで残量がない場合は、インストール不要です。
インストールしようとしてもできないと思います。
カーネルの更新パッケージを確認する
下記の理研のミラーサイトでCentOS-7のkernel(カーネル)更新ファイルを確認します。http://ftp.riken.jp/Linux/centos/7/updates/x86_64/Packages/
更新されているRPMファイルは、5つありました。
このうち4つのファイルをインストールしていくことにします。
カーネルのRPM
kernel-3.10.0-957.1.3.el7.x86_64.rpm 2018-11-30 01:54 48M
kernel-3.10.0-957.5.1.el7.x86_64.rpm 2019-02-02 01:20 48M
kernel-3.10.0-957.10.1.el7.x86_64.rpm 2019-03-19 00:45 48M
kernel-3.10.0-957.12.1.el7.x86_64.rpm 2019-04-30 00:45 48M
kernel-3.10.0-957.12.2.el7.x86_64.rpm 2019-05-16 00:07 48M
kernel(カーネル)をダウンロード
kernel(カーネル)のRPMファイルを任意の場所にダウンロードします。wgetコマンドを使ってダウンロードしていますが、curlコマンドでも構わないです。
CentOS-7には標準で、wgetコマンドがインストールされていませんので、必要な場合はインストールしてください。
wgetコマンドをインストールする場合
# yum -y install wget
カーネル RPM ダウンロード
[root@vm ~]# wget http://ftp.riken.jp/Linux/centos/7/updates/x86_64/Packages/kernel-3.10.0-957.1.3.el7.x86_64.rpm
[root@vm ~]# wget http://ftp.riken.jp/Linux/centos/7/updates/x86_64/Packages/kernel-3.10.0-957.10.1.el7.x86_64.rpm
[root@vm ~]# wget http://ftp.riken.jp/Linux/centos/7/updates/x86_64/Packages/kernel-3.10.0-957.12.1.el7.x86_64.rpm
[root@vm ~]# wget http://ftp.riken.jp/Linux/centos/7/updates/x86_64/Packages/kernel-3.10.0-957.12.2.el7.x86_64.rpm
kernel(カーネル)インストール
ダウンロードしたkernel(カーネル)のRPMファイルをインストールします。rpmコマンドのオプションに 「U」 は付けないように注意してください。
「U」を付けると上書きインストールされます。
カーネル RPM インストール
##★ kernel-3.10.0-957.1.3.el7.x86_64.rpm
[root@vm ~]# rpm -ihv kernel-3.10.0-957.1.3.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:kernel-3.10.0-957.1.3.el7 ################################# [100%]
[root@vm ~]#
##★ kernel-3.10.0-957.10.1.el7.x86_64.rpm
[root@vm ~]# rpm -ihv kernel-3.10.0-957.10.1.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:kernel-3.10.0-957.10.1.el7 ################################# [100%]
[root@vm ~]#
##★ kernel-3.10.0-957.12.1.el7.x86_64.rpm
[root@vm ~]# rpm -ihv kernel-3.10.0-957.12.1.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:kernel-3.10.0-957.12.1.el7 ################################# [100%]
[root@vm ~]#
##★ kernel-3.10.0-957.12.2.el7.x86_64.rpm
[root@vm ~]# rpm -ihv kernel-3.10.0-957.12.2.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:kernel-3.10.0-957.12.2.el7 ################################# [100%]
[root@vm ~]#
カーネルの確認
新しいカーネルがインストールされたか確認します。カーネル 確認 rpmコマンドで確認
・rpmコマンド
[root@vm ~]# rpm -q kernel
kernel-3.10.0-957.el7.x86_64
kernel-3.10.0-957.1.3.el7.x86_64
kernel-3.10.0-957.10.1.el7.x86_64
kernel-3.10.0-957.12.1.el7.x86_64
kernel-3.10.0-957.12.2.el7.x86_64
[root@vm ~]#
カーネル 確認 lsコマンドで確認
[root@vm ~]# ls /boot/initramfs-*
/boot/initramfs-0-rescue-b7cf746b5ad248228aac1a8ed92faed5.img
/boot/initramfs-3.10.0-957.1.3.el7.x86_64.img
/boot/initramfs-3.10.0-957.10.1.el7.x86_64.img
/boot/initramfs-3.10.0-957.12.1.el7.x86_64.img
/boot/initramfs-3.10.0-957.12.2.el7.x86_64.img
/boot/initramfs-3.10.0-957.el7.x86_64.img
[root@vm ~]#
GRUBの状態を確認する
GRUBの設定状態も確認しておきます。デフォルトで起動するカーネルを確認します。
カーネル 確認 lsコマンド
[root@vm ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-957.12.2.el7.x86_64) 7 (Core)
[root@vm ~]#
容量の確認
CentOS-7のディスク容量を再確認します。ディスク容量 再確認
[root@vm ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 47G 1.9G 46G 4% /
devtmpfs 484M 0 484M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/sda1 1014M 252M 763M 25% /boot
tmpfs 100M 0 100M 0% /run/user/0
[root@vm ~]#
yum-utils インストール
カーネルを削除するコマンド package-cleanup は、yum-utils のパッケージに入っています。yum-utils を yumコマンドでインストールします。
yum-utilsを確認
yum-utils が既にインストール済か否か確認します。インストール 確認
[root@vm ~]# rpm -qa | grep yum-utils
[root@vm ~]#
yum-utilsパッケージを検索する
yum-utilsのパッケージを検索します。パッケージ 検索
[root@vm ~]# yum list | grep yum-utils
yum-utils.noarch 1.1.31-50.el7 base
[root@vm ~]#
yum-utilsをインストールする
yumコマンドで、yum-utilsをインストールします。yum-utils インストール
[root@vm ~]# yum -y install yum-utils
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* extras: mirrors.cat.net
* updates: mirrors.cat.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ yum-utils.noarch 0:1.1.31-50.el7 を インストール
--> 依存性の処理をしています: python-kitchen のパッケージ: yum-utils-1.1.31-50.el7.noarch
--> 依存性の処理をしています: libxml2-python のパッケージ: yum-utils-1.1.31-50.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ libxml2-python.x86_64 0:2.9.1-6.el7_2.3 を インストール
---> パッケージ python-kitchen.noarch 0:1.1.1-5.el7 を インストール
--> 依存性の処理をしています: python-chardet のパッケージ: python-kitchen-1.1.1-5.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ python-chardet.noarch 0:2.2.1-1.el7_1 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
========================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
========================================================================================
インストール中:
yum-utils noarch 1.1.31-50.el7 base 121 k
依存性関連でのインストールをします:
libxml2-python x86_64 2.9.1-6.el7_2.3 base 247 k
python-chardet noarch 2.2.1-1.el7_1 base 227 k
python-kitchen noarch 1.1.1-5.el7 base 267 k
トランザクションの要約
========================================================================================
インストール 1 パッケージ (+3 個の依存関係のパッケージ)
総ダウンロード容量: 861 k
インストール容量: 4.3 M
Downloading packages:
(1/4): yum-utils-1.1.31-50.el7.noarch.rpm | 121 kB 00:00:00
(2/4): python-chardet-2.2.1-1.el7_1.noarch.rpm | 227 kB 00:00:00
(3/4): python-kitchen-1.1.1-5.el7.noarch.rpm | 267 kB 00:00:00
(4/4): libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm | 247 kB 00:00:06
----------------------------------------------------------------------------------------
合計 135 kB/s | 861 kB 00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
インストール中 : python-chardet-2.2.1-1.el7_1.noarch 1/4
インストール中 : python-kitchen-1.1.1-5.el7.noarch 2/4
インストール中 : libxml2-python-2.9.1-6.el7_2.3.x86_64 3/4
インストール中 : yum-utils-1.1.31-50.el7.noarch 4/4
検証中 : libxml2-python-2.9.1-6.el7_2.3.x86_64 1/4
検証中 : python-kitchen-1.1.1-5.el7.noarch 2/4
検証中 : yum-utils-1.1.31-50.el7.noarch 3/4
検証中 : python-chardet-2.2.1-1.el7_1.noarch 4/4
インストール:
yum-utils.noarch 0:1.1.31-50.el7
依存性関連をインストールしました:
libxml2-python.x86_64 0:2.9.1-6.el7_2.3 python-chardet.noarch 0:2.2.1-1.el7_1
python-kitchen.noarch 0:1.1.1-5.el7
完了しました!
[root@vm ~]#
カーネルを削除する
CentOSの初期設定では、最新カーネルと1世代前のカーネルは残るようになっています。上記2つを対象外とした古いカーネル(kernelとkernel-devel)が削除されます。
もっと古いカーネルも残したいという場合は、オプションを指定すれば削除可能です。
--count=残すカーネル数を追加する。
例えば、最新版および2世代前のカーネルまでを残すならば、
# package-cleanup --oldkernels --count=3
となります。
削除数のデフォルトの値は、2になっているようです。
--count= を指定しなかった場合は、--count=2 と同様になります。
古いカーネルを削除する
今回は上記でカーネルを4つ更新しました。 この4つの中から古い3つのカーネルを削除してみます。古いカーネル 削除
[root@vm ~]# package-cleanup --oldkernels --count=3
読み込んだプラグイン:fastestmirror
Not removing kernel 3.10.0-957.el7 because it is the running kernel
--> トランザクションの確認を実行しています。
---> パッケージ kernel.x86_64 0:3.10.0-957.1.3.el7 を 削除
--> 依存性解決を終了しました。
依存性を解決しました
========================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
========================================================================================
削除中:
kernel x86_64 3.10.0-957.1.3.el7 installed 63 M
トランザクションの要約
========================================================================================
削除 1 パッケージ
インストール容量: 63 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
削除中 : kernel-3.10.0-957.1.3.el7.x86_64 1/1
検証中 : kernel-3.10.0-957.1.3.el7.x86_64 1/1
削除しました:
kernel.x86_64 0:3.10.0-957.1.3.el7
完了しました!
[root@vm ~]#
削除後の状態確認
古いカーネルが実際に削除されたか確認します。削除前は5つのカーネルがありましたが、1つ減って4つになっています。
[root@vm ~]# rpm -q kernel
kernel-3.10.0-957.el7.x86_64
kernel-3.10.0-957.10.1.el7.x86_64
kernel-3.10.0-957.12.1.el7.x86_64
kernel-3.10.0-957.12.2.el7.x86_64
[root@vm ~]#
/bootの残量を確認する
カーネル削除後、/bootの容量・残量を確認してみます。252Mの容量を使用していたのが、222Mになって少し減っていました。
/boot容量確認
[root@vm ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 47G 1.9G 46G 4% /
devtmpfs 484M 0 484M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/sda1 1014M 222M 793M 22% /boot
tmpfs 100M 0 100M 0% /run/user/0
[root@vm ~]#
以上、CentOS-7で不要な古いカーネルを削除してboot領域を確保する方法でした。
0 件のコメント:
コメントを投稿