In CentOS 7 kann es zu seltsamen Symptomen kommen, die auf konkurrierende Kernel zurückzuführen sind. Wie lösche ich also die alten Kernel sicher? Und woher weiß ich, welcher Kernel der neueste ist?
Unten ist die Terminal-Ausgabe aufgeführt, die ich zur Zeit erhalte, wenn ich dies auf dem fraglichen Server recherchiere. Beachten Sie, dass ich die Paketbereinigung versucht habe, aber die gleichen 2 Kernel belassen:
Die Anweisungen in diesem Lernprogramm besagen, dass die Ausgabe der folgenden beiden Befehle übereinstimmen sollte, aber Sie können feststellen, dass sie auch nach einem Neustart nicht übereinstimmen:
[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
Die restlichen Befehle bestätigen, dass es zwei Kernel gibt, und veranschaulichen Versuche, den alten zu löschen.
[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]#
Ich habe auch geöffnet /etc/yum.conf
und eingestellt installonly_limit=1
, dies führte jedoch zu einem Fehler bei einem nachfolgenden yum update
Befehl, der besagt, dass 1 außerhalb des Bereichs zulässiger Werte für liegt installonly_limit
.
Ich nehme an, das 3.10.0-229.14.1.el7.x86_64
ist das Neueste, aber wie kann ich das wissen? Außerdem bieten die Boot-Optionen offenbar mehrere Kernel zur Auswahl. Die Gefahr von Verwirrung wird noch größer, wenn das System vom ersten Kernel in der Liste der Optionen aus automatisch gestartet wird.
Kann jemand bitte erklären, wie dies funktioniert und wie man alte Kernel sicher löscht, damit die Kernelversion als mögliche Ursache für seltsame Symptome beseitigt werden kann? Ich möchte sicherstellen, dass der neueste Kernel der einzige Kernel ist, der jemals ausgeführt werden kann, unabhängig davon, wie das System neu gestartet wird.
quelle
installonly_limit=1
. Ich bekomme lustige Symptome, die möglicherweise von zwei Kernelversionen herrühren, daher möchte ich, wenn möglich, nur eine Version oder zumindest eine definitive Erklärung dafür haben, warum es nicht möglich ist, weniger als zwei Versionen zu haben, wenn in Tatsache ist, dass es nicht möglich ist.Antworten:
package-cleanup --oldkernels --count=1
Löschen Sie alle Kernel mit Ausnahme des neuesten.quelle
package-cleanup --oldkernels --count=2
package-cleanup --oldkernels --count=1
. Nach dem Neustart bekomme ich immer noch zwei Kernel:CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)
UndCentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
weißt du, wie man nur einen behält?yum install yum-utils
Der Befehl
package-cleanup
entferne älteren Kernel. Verwenden Sie--count=1
diese Option , um nur die neuesten Informationen zu speichern. Das Programm wird den aktuell verwendeten Kernel niemals entfernen ("Kernel 3.10.0-327.el7 wird nicht entfernt, da es sich um den laufenden Kernel handelt"), sodass Sie möglicherweise zwei Kernel in / boot haben, bis Sie neu starten und neu starten Führen Sie den Befehl aus.Der Befehl lautet also
Die Manpage dokumentiert drei Möglichkeiten:
quelle
Verwenden Sie
yum upgrade
anstelle vonyum update
Dann behält es nur drei Kernel. Wenn Sie
update
dann verwenden, wird es Ihre füllen/boot
quelle
nach dieser :
Führen Sie aus
rpm -q kernel
, um den installierten Kernel anzuzeigenFühren Sie dann aus
yum remove kernel <shown kernel from output above>
, um den Kernel zu entfernenStarten Sie Ihren Computer neu
edit: dies funktioniert tatsächlich für @ Rons Problem, aber stelle sicher, dass der elrepo-Kernel korrekt läuft
quelle
uname -r
dann den nicht verwendeten Kernel löschen, der jedoch von diesem Befehl angezeigt wird.