web-dev-qa-db-fra.com

Comment supprimer en toute sécurité les anciennes versions du noyau dans CentOS 7?

Je peux rencontrer des symptômes étranges résultant de noyaux concurrents dans CentOS 7. Alors, comment supprimer en toute sécurité les anciens noyaux? Et comment savoir quel noyau est le plus récent?

Vous trouverez ci-dessous la sortie du terminal que j'obtiens au moment de la recherche sur le serveur en question. Notez que j'ai essayé le nettoyage de package mais il laisse les mêmes 2 noyaux:

Les instructions de ce didacticiel indiquent que la sortie des deux commandes suivantes doit correspondre, mais vous pouvez voir qu'elles ne correspondent pas, même après un redémarrage:

[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

Les commandes restantes confirment qu'il existe deux noyaux et illustrent les tentatives de suppression de l'ancien.

[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]# 

J'ai aussi ouvert /etc/yum.conf Et mettre installonly_limit=1, mais cela s'est traduit par une erreur d'un yum update commande indiquant que 1 est en dehors de la plage de valeurs acceptables pour installonly_limit.

Je suppose que 3.10.0-229.14.1.el7.x86_64 est le plus récent, mais comment le savoir? De plus, les options de démarrage semblent offrir plusieurs noyaux parmi lesquels choisir. Et les risques de confusion s'aggravent lorsque le système démarre automatiquement à partir du premier noyau de la liste des options.

Quelqu'un peut-il expliquer comment cela fonctionne, et en particulier, comment supprimer en toute sécurité les anciens noyaux afin que la version du noyau puisse être éliminée en tant que cause possible de symptômes étranges? Je veux m'assurer que le noyau le plus récent est le seul qui puisse jamais fonctionner, quel que soit le redémarrage du système.

16
CodeMed

package-cleanup --oldkernels --count=1 supprimer tous les noyaux sauf le dernier.

24
user40456

La commande package-cleanup supprimer l'ancien noyau. Utilisation --count=1 pour ne conserver que les dernières informations. Le programme ne supprimera jamais le noyau actuellement utilisé ("Ne pas supprimer le noyau 3.10.0-327.el7 car il s'agit du noyau en cours d'exécution"), vous pouvez donc vous retrouver avec deux noyaux dans/boot ... jusqu'à ce que vous redémarriez et re -exécutez la commande.

La commande est donc

package-cleanup --oldkernels --count=1 

La page de manuel décrit trois options:

--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
8
Franklin Piat

Utilisation yum upgrade au lieu de yum update

Ensuite, il ne gardera que trois noyaux. Si vous utilisez update, il remplira votre /boot

2
gurkan