Pesquisa de site

Como instalar ou atualizar para o Kernel 5.0 no CentOS 7


Embora algumas pessoas utilizem a palavra Linux para representar o sistema operacional como um todo, é importante observar que, a rigor, Linux é apenas o kernel. Por outro lado, uma distribuição é um sistema totalmente funcional construído sobre o kernel com uma ampla variedade de ferramentas e bibliotecas de aplicação.

Durante as operações normais, o kernel é responsável por realizar duas tarefas importantes:

  1. Atuando como uma interface entre o hardware e o software em execução no sistema.
  2. Gerenciando os recursos do sistema da maneira mais eficiente possível.

Para fazer isso, o kernel se comunica com o hardware através dos drivers que estão embutidos nele ou que podem ser instalados posteriormente como um módulo.

Por exemplo, quando um aplicativo em execução na sua máquina deseja se conectar a uma rede sem fio, ele envia essa solicitação ao kernel, que por sua vez usa o driver correto para se conectar à rede.

Leitura sugerida: Como atualizar o kernel no Ubuntu

Com novos dispositivos e tecnologias sendo lançados periodicamente, é importante manter nosso kernel atualizado se quisermos aproveitá-los ao máximo. Além disso, atualizar nosso kernel nos ajudará a aproveitar novas funções do kernel e a nos proteger de vulnerabilidades que foram descobertas em versões anteriores.

Pronto para atualizar seu kernel no CentOS 7 ou em um de seus derivados, como o RHEL 7 e o Fedora? Se sim, continue lendo!

Etapa 1: verificar a versão do kernel instalado

Quando instalamos uma distribuição ela inclui uma determinada versão do kernel Linux. Para mostrar a versão atual instalada em nosso sistema podemos fazer:

uname -sr

A imagem a seguir mostra a saída do comando acima em um servidor CentOS 7:

Se formos agora para https://www.kernel.org/, veremos que a versão mais recente do kernel é 5.0 no momento em que este livro foi escrito (outras versões estão disponíveis no mesmo site).

Esta nova versão do Kernel 5.0 é um lançamento de longo prazo e terá suporte por 6 anos, antes todas as versões do Kernel Linux eram suportadas por apenas 2 anos.

Uma coisa importante a considerar é o ciclo de vida de uma versão do kernel – se a versão que você está usando atualmente estiver chegando ao fim de sua vida útil, nenhuma outra correção de bug será fornecida após essa data. Para obter mais informações, consulte a página de lançamentos do kernel.

Etapa 2: Atualizando o Kernel no CentOS 7

A maioria das distribuições modernas fornece uma maneira de atualizar o kernel usando um sistema de gerenciamento de pacotes como o yum e um repositório com suporte oficial.

Importante: Se você deseja executar um kernel compilado personalizado, leia nosso artigo que explica como compilar o kernel do Linux no CentOS 7 a partir de fontes.

No entanto, isso realizará apenas a atualização para a versão mais recente disponível nos repositórios da distribuição – e não a mais recente disponível em https://www.kernel.org/. Infelizmente, o Red Hat só permite atualizar o kernel usando a opção anterior.

Ao contrário do Red Hat, o CentOS permite o uso do ELRepo, um repositório de terceiros que transforma a atualização para uma versão recente em um kernel.

Para habilitar o repositório ELRepo no CentOS 7, faça:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 

Depois que o repositório for ativado, você poderá usar o seguinte comando para listar os pacotes kernel.relacionados disponíveis:


yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirror-hk.koddos.net
Available Packages
kernel-lt.x86_64                        4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-devel.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-doc.noarch                    4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-headers.x86_64                4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs.x86_64             4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       4.4.176-1.el7.elrepo        elrepo-kernel
kernel-ml.x86_64                        5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-devel.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-doc.noarch                    5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-headers.x86_64                5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs.x86_64             5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       5.0.0-1.el7.elrepo          elrepo-kernel
perf.x86_64                             5.0.0-1.el7.elrepo          elrepo-kernel
python-perf.x86_64                      5.0.0-1.el7.elrepo          elrepo-kernel

Em seguida, instale o kernel estável principal mais recente:


yum --enablerepo=elrepo-kernel install kernel-ml

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.mirror.net.in
 * elrepo: mirror-hk.koddos.net
 * elrepo-kernel: mirror-hk.koddos.net
 * epel: repos.del.extreme-ix.org
 * extras: centos.mirror.net.in
 * updates: centos.mirror.net.in
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:5.0.0-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================
 Package                Arch        Version                 Repository        Size
====================================================================================
Installing:
 kernel-ml              x86_64      5.0.0-1.el7.elrepo      elrepo-kernel     47 M

Transaction Summary
====================================================================================
Install  1 Package

Total download size: 47 M
Installed size: 215 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-5.0.0-1.el7.elrepo.x86_64.rpm                           |  47 MB  00:01:21     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 
  Verifying  : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 

Installed:
  kernel-ml.x86_64 0:5.0.0-1.el7.elrepo                                                                                                                                                                            

Complete!

Finalmente, reinicie sua máquina para aplicar o kernel mais recente e então selecione o kernel mais recente no menu conforme mostrado.

Faça login como root e execute o seguinte comando para verificar a versão do kernel:

uname -sr

Etapa 3: definir a versão padrão do kernel no GRUB

Para tornar a versão recém-instalada a opção de inicialização padrão, você terá que modificar a configuração do GRUB da seguinte forma:

Abra e edite o arquivo /etc/default/grub e defina GRUB_DEFAULT=0. Isto significa que o primeiro kernel na tela inicial do GRUB será usado como padrão.

GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

Em seguida, execute o seguinte comando para recriar a configuração do kernel.


grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.0.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.20.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.20.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.11-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.11-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.1.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.1.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-1e2b46dbc0c04b05b592c837c366bb76
Found initrd image: /boot/initramfs-0-rescue-1e2b46dbc0c04b05b592c837c366bb76.img
done

Reinicie e verifique se o kernel mais recente está sendo usado por padrão.

Parabéns! Você atualizou seu kernel no CentOS 7!

Resumo

Neste artigo, explicamos como atualizar facilmente o kernel Linux em seu sistema. Existe ainda outro método que não abordamos, pois envolve a compilação do kernel a partir do código-fonte, o que mereceria um livro inteiro e não é recomendado em sistemas de produção.

Embora represente uma das melhores experiências de aprendizado e permita uma configuração refinada do kernel, você pode inutilizar seu sistema e ter que reinstalá-lo do zero.

Se você ainda estiver interessado em construir o kernel como uma experiência de aprendizado, você encontrará instruções sobre como fazê-lo na página Kernel Newbies.

Como sempre, sinta-se à vontade para usar o formulário abaixo se tiver alguma dúvida ou comentário sobre este artigo.