Como faço para excluir com segurança versões antigas do kernel no CentOS 7?

13

Eu posso estar encontrando sintomas estranhos resultantes de kernels concorrentes no CentOS 7. Então, como posso excluir com segurança os kernels antigos? E como eu sei qual kernel é o mais novo?

Abaixo está a saída do terminal que recebo no momento em que pesquisamos isso no servidor em questão. Note que eu tentei limpeza de pacotes, mas deixa os mesmos 2 kernels:

As instruções neste tutorial dizem que a saída dos dois comandos a seguir deve corresponder, mas você pode ver que eles não correspondem, mesmo depois de uma reinicialização:

[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

Os comandos restantes confirmam que existem dois kernels e ilustram tentativas de excluir o antigo.

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

Eu também abri /etc/yum.conf e defini installonly_limit=1 , mas isso resultou em um erro de um comando yum update subsequente dizendo que 1 está fora do intervalo de valores aceitáveis para installonly_limit .

Eu assumo que 3.10.0-229.14.1.el7.x86_64 é o mais novo, mas como posso saber isso? Além disso, as opções de inicialização parecem oferecer vários kernels para você escolher. E as oportunidades de confusão pioram quando o sistema inicializa automaticamente a partir do primeiro kernel na lista de opções.

Alguém pode explicar como isso funciona e, em específico, como excluir com segurança kernels antigos para que a versão do kernel possa ser eliminada como uma possível causa de sintomas estranhos? Eu quero ter certeza de que O kernel mais recente é o único kernel que pode ser executado, não importa como o sistema seja reiniciado.

    
por CodeMed 03.10.2015 / 00:18

4 respostas

18

package-cleanup --oldkernels --count=1 exclua todos os kernels, exceto os mais recentes.

    
por 03.02.2016 / 15:18
8

O comando package-cleanup remove o kernel antigo. Use --count=1 para manter apenas o mais recente. O programa nunca irá remover o kernel atualmente usado ("Não removendo o kernel 3.10.0-327.el7 porque é o kernel em execução"), então você pode acabar com dois kernels em / boot ... até que você reinicie e reinicie o kernel. Execute o comando.

Então o comando é

package-cleanup --oldkernels --count=1 

O documento do manpage três opções:

--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
    
por 11.03.2016 / 08:23
2

Use yum upgrade em vez de yum update

Em seguida, ele manterá apenas três kernels. Se você usar update , ele preencherá seu /boot

    
por 27.10.2016 / 11:09
-1

de acordo com this :

execute rpm -q kernel para mostrar o kernel instalado

execute yum remove kernel <shown kernel from output above> para remover o kernel

reinicie o seu computador

edite: isso realmente funciona para o problema do @Ron, mas certifique-se de que o kernel elrepo esteja sendo executado corretamente

    
por 10.06.2018 / 16:39