Talvez eu esteja encontrando sintomas estranhos resultantes de kernels concorrentes no CentOS 7. Então, como excluo 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 pesquisava isso no servidor em questão. Observe que eu tentei limpar o pacote, mas ele 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 após 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 as 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]#
Também abri /etc/yum.conf
e configurei installonly_limit=1
, mas isso resultou em um erro de um yum update
comando subseqüente dizendo que 1 está fora do intervalo de valores aceitáveis para installonly_limit
.
Presumo que 3.10.0-229.14.1.el7.x86_64
seja o mais novo, mas como posso saber disso? 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 é inicializado 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 os kernels antigos, para que a versão do kernel possa ser eliminada como uma possível causa de sintomas estranhos? Quero garantir que o kernel mais recente seja o único que pode ser executado, não importa como o sistema seja reiniciado.
fonte
installonly_limit=1
. Estou recebendo sintomas engraçados que podem resultar de duas versões do kernel, portanto, gostaria de ter apenas uma versão, se possível, ou pelo menos ter uma explicação definitiva sobre por que não é possível ter menos de duas versões, se estiver em fato não é possível.Respostas:
package-cleanup --oldkernels --count=1
exclua todos os kernels, exceto os mais recentes.fonte
package-cleanup --oldkernels --count=2
package-cleanup --oldkernels --count=1
. Após a reinicialização, ainda recebo dois núcleos:CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)
eCentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
, você sabe como manter um?yum install yum-utils
O comando
package-cleanup
remove o kernel mais antigo. Use--count=1
para manter apenas as últimas. O programa nunca removerá o kernel atualmente usado ("Não está removendo o kernel 3.10.0-327.el7 porque é o kernel em execução"), portanto, você poderá terminar com dois kernels em / boot ... até reiniciar e re -executar o comando.Então o comando é
A página de manual documenta três opções:
fonte
Use em
yum upgrade
vez deyum update
Então ele manterá apenas três núcleos. Se você usar
update
, ele preencherá seu/boot
fonte
de acordo com isso :
execute
rpm -q kernel
para mostrar o kernel instaladoentão corra
yum remove kernel <shown kernel from output above>
para remover o kernelreinicie seu computador
edit: isso realmente funciona para o problema de @ Ron, mas verifique se o kernel do elrepo está funcionando corretamente
fonte
uname -r
em seguida, elimine o kernel não utilizado, mas mostrado a partir desse comando,