package-cleanup --oldkernels --count=1
exclua todos os kernels, exceto os mais recentes.
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.
package-cleanup --oldkernels --count=1
exclua todos os kernels, exceto os mais recentes.
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
Use yum upgrade
em vez de yum update
Em seguida, ele manterá apenas três kernels. Se você usar update
, ele preencherá seu /boot
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
Tags kernel centos linux-kernel