Usando o grubby para Gerenciar Kernels

Use o comando grubby para gerenciar a configuração do GRUB 2 no sistema, incluindo a seleção do kernel de inicialização padrão ou a configuração de parâmetros de inicialização de linha de comando extra do kernel a serem usados na inicialização.

Consulte a página do manual grubby(8) para obter mais informações.

Verificando Kernels Disponíveis no Sistema

Os Kernels são nomeados para incluir o número da versão upstream, a compilação de distribuição e a família de kernel.

Consulte Sobre Kernels do Linux para obter contexto extra.

Vários métodos estão disponíveis para verificar quais kernels estão disponíveis em um sistema:

  1. Liste os kernels no diretório /boot.
    ls -1 /boot/vmlinuz*

    O comando produz uma lista exata de kernels disponíveis no sistema.

  2. Use o comando grubby em kernels específicos ou usando a opção ALL.
    sudo grubby --info /boot/vmlinuz-kernel-version.kernel_suffix*
    sudo grubby --info ALL

    O comando fornece informações mais completas sobre a configuração de inicialização associada a cada kernel no diretório /boot do sistema. Os detalhes são baseados na configuração do título GRUB.

Comparando o Kernel Padrão com o Kernel em Execução

O kernel em execução e o kernel configurado como o kernel padrão que o GRUB 2 seleciona para inicializar após um período de timeout para o menu de inicialização podem ser diferentes.

Se a versão do kernel padrão e a versão do kernel em execução não forem idênticas, os motivos subjacentes poderão ser um dos seguintes:

  • Um kernel mais recente está instalado, mas o sistema não foi reinicializado.

  • Durante uma reinicialização do sistema, um kernel diferente foi selecionado manualmente para ser o kernel operativo.

  • O kernel padrão foi atualizado manualmente, mas o sistema não foi reinicializado após a atualização.

Para comparar o kernel configurado padrão com o kernel em execução, faça o seguinte:
  1. Verifique o kernel padrão configurado no GRUB 2.

    Para verificar qual kernel já está configurado como o kernel padrão atual a ser usado na inicialização, execute:

    sudo grubby --default-kernel
  2. Verifique a versão do kernel em execução.

    Para verificar qual kernel está sendo executado em um sistema, execute:

    uname -r

Alterando o Kernel Padrão

Use grubby para definir o kernel padrão no qual o GRUB2 é inicializado após um período de timeout ser atingido ao exibir o menu de inicialização do GRUB2.

Você pode alterar o kernel padrão de RHCK para UEK, de UEK para RHCK ou para alternar para uma versão específica do kernel.

Você pode seguir uma das duas opções para definir o kernel padrão no GRUB 2, usando o comando grubby, siga um destes procedimentos:

  1. Use o comando grubby --set-default para definir o kernel padrão.

    Para alternar para outro kernel padrão, execute o seguinte comando, certificando-se de especificar o caminho completo para o kernel padrão selecionado:

    sudo grubby --set-default /boot/vmlinuz-kernel-version.kernel-suffix.arch

    Substitua kernel-version e kernel_suffix pelos valores que correspondem ao kernel de destino. Por exemplo, execute:

    sudo grubby --set-default /boot/vmlinuz-6.12.0-100.28.2.el10uek.x86_64

    A alteração entra em vigor imediatamente e persiste nas reinicializações do sistema.

  2. Use o comando grubby --set-default-index para definir o kernel padrão para corresponder ao kernel em um ponto de índice específico na lista de inicialização do kernel. Os valores de índice são exibidos quando você executa o comando grubby --info

    Por exemplo, você pode usar a opção --set-default-index=0 para definir o kernel padrão para o primeiro kernel listado no índice de inicialização do kernel executando:

    sudo grubby --set-default-index=0

Alternar para o Kernel RHCK ou UEK Disponível Mais Recente

Usando a convenção de nomenclatura para identificar os kernels UEK e os kernels RHCK disponíveis no diretório /boot, você pode alternar facilmente o kernel padrão para usar a versão mais recente de qualquer tipo de kernel.

  • Para alternar para a versão mais recente do UEK no sistema, execute:
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep 'uek' | sort -V | tail -1)
  • Para alternar para a versão mais recente do RHCK no sistema, execute:
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep -v 'uek' | sort -V | tail -1)

Reinicialize o sistema depois de definir o kernel padrão para alternar para esse tipo de kernel.

Alterando os Parâmetros de Inicialização da Linha de Comando do Kernel

Às vezes, pode ser necessário editar a configuração GRUB 2 para especificar determinados parâmetros de inicialização do kernel na linha de comando do kernel. Definir parâmetros na configuração do GRUB 2 significa que os parâmetros são usados para os kernels afetados em cada inicialização.

É possível atualizar a configuração de inicialização do GRUB 2 para um kernel específico ou em todos os kernels instalados no sistema fazendo o seguinte:

  1. Use o comando grubby --update-kernel para atualizar uma entrada do kernel com --args para adicionar novos argumentos ou alterar valores de argumentos existentes, ou --remove-args para remover argumentos existentes.

    Vários argumentos podem ser especificados para cada opção em uma lista separada por espaços entre aspas. Você pode adicionar e remover argumentos na mesma operação. Ao usar a opção --args, se já existir um argumento, o novo valor substituirá os valores antigos.

    Para atualizar um kernel específico, execute o comando grubby --update-kernel com o caminho completo para o kernel que você deseja atualizar. Para atualizar todas as entradas do kernel para usar um argumento de inicialização do kernel específico, você pode usar grubby --update-kernel=ALL.

    Por exemplo, você pode atualizar todas as entradas do kernel para alterar os argumentos loglevel e LANG:

    sudo grubby --update-kernel=ALL --args "loglevel=3,LANG=en_GB.UTF-8"

    Consulte Kernel Boot Parameter Reference para obter mais informações sobre parâmetros de kernel.

  2. Verifique se as alterações entraram em vigor e se os argumentos da linha de comando estão corretos para o kernel que você atualizou.

    Por exemplo, se você tiver feito uma alteração em todos os kernels, use o comando grubby --info ALL para verificar se a alteração é implementada em todos os kernels:

    sudo grubby --info ALL

Verificando a Última Utilização da Linha de Comandos Kernel para Inicializar o Sistema

Os parâmetros de inicialização do kernel que foram usados pela última vez para inicializar um sistema são registrados em /proc/cmdline.

Para obter mais informações, consulte a página do manual kernel-command-line(7).

Verifique o conteúdo de /proc/cmdline para exibir a linha de comando do kernel que foi usada para inicializar o sistema em execução.
cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.15.0-208.159.3.2.el9uek.x86_64 
root=UUID=72dfa724-5feb-49e2-8869-40625bfebb01 ro 
resume=UUID=13078314-ebff-4c44-b18c-3445f6802198 
rd.luks.uuid=luks-a80f8f10-75b6-45de-b63e-64b8b6a3a94b 
rhgb quiet crashkernel=1G-64G:448M,64G-:512M