23 Instalando várias versões do kernel #
O SUSE Linux Enterprise Server suporta a instalação paralela de várias versões do kernel. Ao instalar um segundo kernel, uma entrada de boot e um initrd são automaticamente criados, dessa forma, nenhuma outra configuração manual é necessária. Ao reinicializar a máquina, o kernel recém-adicionado fica disponível como mais um parâmetro de boot.
Usando esta funcionalidade, você pode testar as atualizações do kernel com segurança e sempre realizar fallback para o kernel anterior comprovado. Para isso, não use as ferramentas de atualização (como a Atualização Online do YaST ou o applet de atualização). Em vez disso, siga o processo descrito neste capítulo.
Fique ciente de você perde todo o seu direto a suporte para a máquina ao instalar um kernel autocompilado ou de terceiros. Somente os kernels distribuídos com o SUSE Linux Enterprise Server e os kernels disponibilizados pelos canais de atualização oficiais do SUSE Linux Enterprise Server são suportados.
É recomendável verificar a configuração do carregador de boot após a instalação de outro kernel para definir a entrada de boot padrão de sua escolha. Consulte a Section 14.3, “Configuring the boot loader with YaST” para obter mais informações.
23.1 Habilitando e configurando suporte multiversão #
A instalação de várias versões de um pacote de software (suporte multiversão) está habilitada por padrão a partir do SUSE Linux Enterprise Server 12. Para verificar essa configuração, faça o seguinte:
- Abra - /etc/zypp/zypp.confcomo- rootno editor de sua escolha.
- Pesquise pela string - multiversion(multiversão). Se a multiversão estiver habilitada para todos os pacotes do kernel compatíveis com esse recurso, a seguinte linha aparecerá sem comentários:- multiversion = provides:multiversion(kernel) 
- Para restringir o suporte multiversão a determinados tipos de kernel, adicione os nomes dos pacotes como uma lista separada por vírgula à opção - multiversionem- /etc/zypp/zypp.conf, por exemplo- multiversion = kernel-default,kernel-default-base,kernel-source 
- Grave as mudanças feitas. 
Verifique se os módulos do kernel necessários (Pacotes de Módulos do Kernel) distribuídos pelo fornecedor também foram instalados para o novo kernel atualizado. O processo de atualização do kernel não avisa sobre eventuais módulos do kernel que estiverem faltando, porque os requisitos do pacote ainda estão sendo atendidos pelo kernel antigo mantido no sistema.
23.1.1 Apagando kernels não usados automaticamente #
    Quando novos kernels são testados com frequência com o suporte multiversão habilitado, o menu de boot torna-se rapidamente confuso. Como a partição /boot normalmente tem espaço limitado, você também pode ter problemas com overflow de /boot. Embora seja possível apagar as versões não usadas do kernel manualmente com o YaST ou o Zypper (conforme descrito a seguir), você também pode configurar o libzypp para apagar automaticamente os kernels que não são mais usados. Por padrão, nenhum kernel é apagado.
   
- Abra - /etc/zypp/zypp.confcomo- rootno editor de sua escolha.
- Pesquise pela string - multiversion.kernelse ative esta opção removendo o comentário da linha. Esta opção usa uma lista separada por vírgula dos seguintes valores:- 5.3.18-53.3: manter o kernel com o número de versão especificado- mais recente: manter o kernel com o número de versão mais alto- latest-N: manter o kernel com o Nth número de versão mais alto- em execução: manter o kernel em execução- oldest: manter o kernel com o número de versão mais baixo (o número originalmente incluído no SUSE Linux Enterprise Server)- oldest+N: manter o kernel com o Nth número de versão mais baixo- Veja a seguir alguns exemplos - multiversion.kernels = latest,running
- Manter o kernel mais recente e o que estiver em execução. Isso é o mesmo que não habilitar o recurso multiversão, com a exceção de que o kernel antigo será removido após a próxima reinicialização, e não logo após a instalação. 
- multiversion.kernels = latest,latest-1,running
- Manter os dois últimos kernels e o que estiver em execução. 
- multiversion.kernels = latest,running,5.3.18-53.3
- Manter o kernel mais recente, o que estiver em execução e 5.3.18-53.3. 
 Dica: Manter o kernel em execução- Exceto se você usa uma configuração especial, sempre mantenha o kernel marcado como - running(em execução).- Se você não fizer isso, ele será apagado durante a atualização. Por sua vez, isso significa que todos os módulos do kernel em execução também serão apagados e não poderão mais ser carregados. - Se você decidir não manter o kernel em execução, sempre reinicialize logo após um upgrade do kernel para evitar problemas com os módulos. 
23.1.2 Caso de uso: Apagando um kernel antigo apenas depois da reinicialização #
É importante garantir que o kernel antigo seja apagado apenas depois que o sistema é reinicializado com êxito com o novo kernel.
    Mude a seguinte linha em /etc/zypp/zypp.conf:
   
multiversion.kernels = latest,running
Os parâmetros anteriores pedem para o sistema manter o kernel mais recente e o que está em execução apenas se eles forem diferentes.
23.1.3 Caso de uso: Mantendo kernels mais antigos como fallback #
Convém manter uma ou mais versões de kernel para ter um ou mais kernels “sobressalentes”.
Isso pode ser útil se você precisa de kernels para testes. Se alguma coisa der errado (por exemplo, sua máquina não for inicializada), você ainda poderá usar uma ou mais versões de kernel reconhecidamente boas.
    Mude a seguinte linha em /etc/zypp/zypp.conf:
   
multiversion.kernels = latest,latest-1,latest-2,running
    Quando você reinicializa o sistema após a instalação de um novo kernel, o sistema mantém três kernels: o atual (configurado como latest,running) e os dois antecessores imediatos (configurados como latest-1 e latest-2).
   
23.1.4 Caso de uso: Mantendo uma versão específica do kernel #
Você faz atualizações de sistema regulares e instala novas versões de kernel. Porém, você também está compilando sua própria versão do kernel e deseja garantir que o sistema a mantenha.
    Mude a seguinte linha em /etc/zypp/zypp.conf:
   
multiversion.kernels = latest,5.3.18-53.3,running
    Quando você reinicializa o sistema após a instalação de um novo kernel, o sistema mantém dois kernels: o kernel novo em execução (configurado como latest,running) e o seu próprio kernel compilado (configurado como 5.3.18-53.3).
   
23.2 Instalando/Removendo várias versões do kernel com o YaST #
Você pode instalar ou remover vários kernels com YaST:
- Inicie o YaST e abra o gerenciador de software em › . 
- Liste todos os pacotes capazes de fornecer várias versões escolhendo › › . Figura 23.1: Gerenciador de software do YaST: exibição multiversão #
- Selecione um pacote e abra a guia no painel inferior à esquerda. 
- Para instalar um pacote, clique na caixa de seleção ao lado dele. Uma marca de seleção verde indica que ele está selecionado para instalação. - Para remover um pacote já instalado (indicado com uma marca de seleção branca), clique na caixa de seleção ao lado dele até um - Xvermelho indicar que ele está selecionado para remoção.
- Clique em para iniciar a instalação. 
23.3 Instalando/Removendo várias versões do kernel com o Zypper #
   Você pode instalar ou remover vários kernels com o zypper:
  
- Use o comando - zypper se -s 'kernel*'para exibir uma lista de todos os pacotes de kernel disponíveis:- S | Name | Type | Version | Arch | Repository ---+----------------------+---------+-------------------+--------+--------------------------------- i+ | kernel-default | package | 5.3.18-53.3 | x86_64 | (System Packages) i+ | kernel-default | package | 5.3.18-54.2 | x86_64 | SLE-Module-Basesystem15-SP3-Pool | kernel-default-base | package | 5.3.18-54.2.16.15 | x86_64 | SLE-Module-Basesystem15-SP3-Pool | kernel-default-devel | package | 5.3.18-54.2 | x86_64 | SLE-Module-Basesystem15-SP3-Pool | kernel-devel | package | 5.3.18-54.2 | noarch | SLE-Module-Basesystem15-SP3-Pool i | kernel-firmware | package | 20210208-2.4 | noarch | SLE-Module-Basesystem15-SP3-Pool | kernel-macros | package | 5.3.18-54.2 | noarch | SLE-Module-Basesystem15-SP3-Pool | kernel-preempt | package | 5.3.18-54.2 | x86_64 | SLE-Module-Basesystem15-SP3-Pool 
- Especifique a versão exata ao instalar: - tux >- sudozypper in kernel-default-5.3.18-53.3
- Ao desinstalar um kernel, use os comandos - zypper se -si 'kernel*'para listar todos os kernels instalados e o- zypper rmNOMEDOPACOTE-VERSÃO para remover o pacote.
