CentOS 7で古いカーネルバージョンを安全に削除するにはどうすればよいですか?


15

CentOS 7で競合するカーネルに起因する奇妙な症状に遭遇する可能性があります。それでは、古いカーネルを安全に削除するにはどうすればよいですか?そして、どのカーネルが最新のものであるかをどのようにして知ることができますか?

以下は、問題のサーバーでこれを調査するときに得られる端末出力です。パッケージのクリーンアップを試みましたが、同じ2つのカーネルが残っていることに注意してください。

このチュートリアルの手順では、次の2つのコマンドの出力は一致するはずですが、再起動後でも一致しないことがわかります。

[root@localhost ~]# rpm -qa kernel |sort -V |tail -n 1
kernel-3.10.0-229.el7.x86_64
[root@localhost ~]# uname -r
3.10.0-229.14.1.el7.x86_64

残りのコマンドは、2つのカーネルがあることを確認し、古いカーネルを削除する試みを示しています。

[root@localhost ~]# cd /usr/src/kernels
[root@localhost kernels]# ls -al
total 16
drwxr-xr-x.  4 root root 4096 Oct  2 12:55 .
drwxr-xr-x.  4 root root 4096 Oct  2 13:15 ..
drwxr-xr-x. 22 root root 4096 Oct  2 12:55 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Oct  2 12:35 3.10.0-229.el7.x86_64
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# package-cleanup --oldkernels=1
Loaded plugins: fastestmirror
Usage: 
    package-cleanup: helps find problems in the rpmdb of system and correct them

    usage: package-cleanup --problems or --leaves or --orphans or --oldkernels
Command line error: --oldkernels option does not take a value
[root@localhost kernels]# package-cleanup --oldkernels
Loaded plugins: fastestmirror
No old kernels to remove
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# 

また、開いて/etc/yum.conf設定installonly_limit=1しましたが、これは、yum update1がの許容値の範囲外であるという後続のコマンドからのエラーになりましたinstallonly_limit

私はそれ3.10.0-229.14.1.el7.x86_64が最新だと思いますが、どうすればこれを知ることができますか?また、ブートオプションは複数のカーネルから選択できるように見えます。また、システムがオプションのリストの最初のカーネルから自動起動すると、混乱の可能性がさらに高まります。

誰かがこれがどのように機能するのか、具体的には古いカーネルを安全に削除して奇妙な症状の原因としてカーネルバージョンを排除する方法を説明できますか? システムの再起動方法に関係なく、最新のカーネルが実行可能な唯一のカーネルであることを確認したいと思います。


今すぐ完全な答えを書くことができないので、ドアから出て行きます。後でもう一度チェックしようとします。yum-utilsはこれを実行していました(まだ実行されるかどうかはわかりません)。if-not-true-then-false.com/2012/...
0xSheepdog

@ 0xSheepdogはい、同様のチュートリアルのこれらのコマンドを使用していますが、CentOS 7サーバーではが許可されませんinstallonly_limit=1。2つのカーネルバージョンに起因する可能性のある面白い症状が出ているので、可能な場合は1つのバージョンのみを使用します。実際、それは不可能です。
CodeMed

2
単に最新のものではなく、「キープ」基準を「ブートされたカーネル」に変更することをお勧めします。さまざまな理由から、最新のカーネルからブートしない場合があります。
ジェフシャラー

回答:


23

package-cleanup --oldkernels --count=1 最新を除くすべてのカーネルを削除します。


1
フラクタルタートルに簡単な回答をありがとう。また、少なくとも2つの最新カーネルを安全に保管してください。package-cleanup --oldkernels --count=2
ランジマン

1
私は実行しますpackage-cleanup --oldkernels --count=1。再起動後、まだ2つのカーネルを取得しています:CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)、1つだけ保持する方法を知っていますか?
ロン

誰かが@Ronの質問に答えることはできますか?
アリレザモハマディ

1
fyi、パッケージクリーンアップは以下の一部ですyum install yum-utils
。– TiloBunt

8

このコマンドはpackage-cleanup、古いカーネルを削除します。--count=1最新のものを保持するために使用します。プログラムは、現在使用されているカーネルを削除しません(「実行中のカーネルであるため、カーネル3.10.0-327.el7を削除しない」)。したがって、再起動して再起動するまで/ boot ... -コマンドを実行します。

したがって、コマンドは

package-cleanup --oldkernels --count=1 

マンページドキュメントの3つのオプション:

--oldkernels
          Remove old kernel and kernel-devel packages.
--count <COUNT>
          Number of duplicate/kernel packages to keep on the system (default 2)
--keepdevel
          Do not remove kernel-devel packages when removing kernels

2

yum upgrade代わりに使用yum update

その後、3つのカーネルのみを保持します。あなたが使用する場合update、それはあなたのいっぱいになります/boot


-1

よると、この

実行rpm -q kernelして、インストールされているカーネルを表示します

実行yum remove kernel <shown kernel from output above>してカーネルを削除します

コンピュータを再起動します

編集:これは@Ronの問題に対して実際に機能しますが、elrepoカーネルが正しく実行されていることを確認してください


現在のカーネルを削除しないようにするにはどうしますか?
ジェフシャラー

uは現在のカーネルを削除していないことを確認するために、その@JeffSchaller Iの推測のための特定のコマンドをIDK、uが使用して最初にそれをチェックしSUD uname -r、未使用のカーネルを削除し、次にけど、そのコマンドから示す
スーリヤStefanus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.