Atualizando o kernel Linux em AL2023 - Amazon Linux 2023

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Atualizando o kernel Linux em AL2023

Versões do kernel Linux em AL2023

AL2023 inclui regularmente novas versões do kernel com base nas versões Long-Term Support (LTS) do kernel Linux.

AL2023 foi lançado originalmente em março de 2023 com o kernel 6.1.

Em abril de 2025, AL2023 adicionou suporte para o kernel Linux 6.12. Esse kernel adicionou novos recursos, incluindo agendamento EEVDF, I/O suporte à passagem do FUSE, uma nova API Futex e melhorias no eBPF. O kernel 6.12 também permite que um programa de espaço de usuário se proteja no runtime usando pilhas de sombras do espaço de usuário e vedação de memória.

Em março de 2026, AL2023 adicionou suporte para o kernel Linux 6.18. O kernel 6.18 atualizado traz melhorias adicionais no suporte, virtualização, segurança e desempenho do processador. Os recursos notáveis incluem recursos aprimorados de IOMMU em todas as arquiteturas e controles vetoriais de ataque para gerenciar as mitigações de vulnerabilidades da CPU. Os aprimoramentos de desempenho vêm por meio de otimizações de criptografia com operações mais rápidas do FSCRYPT, melhorias no gerenciamento de memória e a introdução do Sheaves como uma nova camada de cache opcional baseada em array por CPU.

Atualizando AL2023 para uma versão mais recente do kernel

A partir de junho de 2026, AL2023 atualizará o kernel padrão anualmente. O al2023-ami-kernel-defaultconjunto de AMIs será atualizado para o kernel LTS mais recente, para que as instâncias recém-lançadas apareçam automaticamente com a nova versão do kernel. Essa é a maneira mais simples de se manter atualizado com as últimas correções de segurança e melhorias de desempenho.

Se preferir escolher uma versão específica do kernel, você pode executar o AL2023 com o kernel 6.12 ou 6.18 selecionando uma AMI com o kernel desejado pré-instalado ou atualizando uma instância EC2 existente do AL2023.

Executando uma AL2023 AMI com uma versão específica do kernel

Você pode optar por executar uma AL2023 AMI com um kernel específico pré-instalado por meio do AWS Console ou consultando o SSM para obter parâmetros específicos. As chaves do SSM para consulta começam com /aws/service/ami-amazon-linux-latest/ seguido por um dos seguintes:

Para o kernel 6.12

  • al2023-ami-kernel-6.12-arm64 para a arquitetura arm64

  • al2023-ami-minimal-kernel-6.12-arm64 para arquitetura arm64 (AMI mínima)

  • al2023-ami-kernel-6.12-x86_64 para a arquitetura x86_64

  • al2023-ami-minimal-kernel-6.12-x86_64 para a arquitetura x86_64 (AMI mínima)

Para o kernel 6.18

  • al2023-ami-kernel-6.18-arm64 para a arquitetura arm64

  • al2023-ami-minimal-kernel-6.18-arm64 para arquitetura arm64 (AMI mínima)

  • al2023-ami-kernel-6.18-x86_64 para a arquitetura x86_64

  • al2023-ami-minimal-kernel-6.18-x86_64 para a arquitetura x86_64 (AMI mínima)

Consulte Lançamento AL2023 usando o parâmetro SSM e AWS CLI para obter detalhes sobre a seleção AL2023 AMIs.

Atualização de uma AL2023 instância para um kernel mais novo

Você pode atualizar localmente uma AL2023 instância em execução para o kernel 6.12 ou 6.18 com as seguintes etapas:

  1. Detecte o kernel atual e defina a versão de destino:

    # Automatically detect current kernel version BEFORE upgrade $ CURRENT_KERNEL=$(uname -r) $ SOURCE_VERSION="" $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then SOURCE_VERSION="6.12" else SOURCE_VERSION="" fi # Save the source version to a persistent location for use after reboot $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
    # Set your target version (change this to your desired kernel: 6.12 or 6.18) $ TARGET_VERSION="6.12"
    $ echo "Current kernel: ${SOURCE_VERSION:-6.1}" $ echo "Upgrading to kernel ${TARGET_VERSION}"
  2. Instale o pacote do kernel de destino:

    $ sudo dnf install -y kernel${TARGET_VERSION}
  3. Obtenha a versão mais recente do pacote do kernel de destino:

    $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1)
  4. Torne o novo kernel seu kernel padrão:

    $ sudo grubby --set-default "/boot/vmlinuz-$version"
  5. Reinicialize o sistema:

    $ sudo reboot
  6. Desinstale o kernel anterior:

    # Read the source kernel version from the saved file $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version) # Uninstall the source kernel $ sudo dnf remove -y kernel${SOURCE_VERSION}
  7. Substitua pacotes extras de kernel por seus equivalentes de kernel de destino:

    # Set your target version (change this to your desired kernel: 6.12 or 6.18) $ TARGET_VERSION="6.12"
    $ declare -A pkgs $ pkgs=( [bpftool${SOURCE_VERSION}]=bpftool${TARGET_VERSION} [kernel${SOURCE_VERSION}-debuginfo]=kernel${TARGET_VERSION}-debuginfo [kernel${SOURCE_VERSION}-debuginfo-common]=kernel${TARGET_VERSION}-debuginfo-common [kernel${SOURCE_VERSION}-headers]=kernel${TARGET_VERSION}-headers [kernel${SOURCE_VERSION}-libbpf]=kernel${TARGET_VERSION}-libbpf [kernel${SOURCE_VERSION}-libbpf-devel]=kernel${TARGET_VERSION}-libbpf-devel [kernel${SOURCE_VERSION}-libbpf-static]=kernel${TARGET_VERSION}-libbpf-static [kernel${SOURCE_VERSION}-modules-extra-common]=kernel${TARGET_VERSION}-modules-extra-common [kernel${SOURCE_VERSION}-tools]=kernel${TARGET_VERSION}-tools [kernel${SOURCE_VERSION}-tools-devel]=kernel${TARGET_VERSION}-tools-devel [perf${SOURCE_VERSION}]=perf${TARGET_VERSION} [python3-perf${SOURCE_VERSION}]=python3-perf${TARGET_VERSION} ) $ for pkg in "${!pkgs[@]}"; do rpm -q $pkg && sudo dnf -y swap $pkg "${pkgs["$pkg"]}" ; done
  8. (Opcional) Desinstale o kernel-devel da versão anterior do kernel:

    $ rpm -q kernel${SOURCE_VERSION}-devel && sudo dnf remove -y kernel${SOURCE_VERSION}-devel

Fazendo o downgrade para uma versão anterior do kernel

Se, em algum momento, você precisar fazer o downgrade para uma versão anterior do kernel, use as seguintes etapas:

  1. Detecte o kernel atual e defina a versão de destino:

    # Automatically detect current kernel version BEFORE downgrade $ CURRENT_KERNEL=$(uname -r) $ SOURCE_VERSION="" $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then SOURCE_VERSION="6.12" elif [[ $CURRENT_KERNEL == *"6.18"* ]]; then SOURCE_VERSION="6.18" fi # Save the source version to a persistent location for use after reboot $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
    # Set your target version (change this to your desired kernel) # Use "" for kernel 6.1, "6.12" for kernel 6.12 $ TARGET_VERSION=""
    $ echo "Downgrading from kernel ${SOURCE_VERSION:-6.1} to kernel ${TARGET_VERSION:-6.1}"
  2. Substitua pacotes extras de kernel por seus equivalentes de kernel de destino:

    $ declare -A pkgs $ pkgs=( [bpftool${TARGET_VERSION}]=bpftool${SOURCE_VERSION} [kernel${TARGET_VERSION}-debuginfo]=kernel${SOURCE_VERSION}-debuginfo [kernel${TARGET_VERSION}-debuginfo-common]=kernel${SOURCE_VERSION}-debuginfo-common [kernel${TARGET_VERSION}-headers]=kernel${SOURCE_VERSION}-headers [kernel${TARGET_VERSION}-libbpf]=kernel${SOURCE_VERSION}-libbpf [kernel${TARGET_VERSION}-libbpf-devel]=kernel${SOURCE_VERSION}-libbpf-devel [kernel${TARGET_VERSION}-libbpf-static]=kernel${SOURCE_VERSION}-libbpf-static [kernel${TARGET_VERSION}-modules-extra-common]=kernel${SOURCE_VERSION}-modules-extra-common [kernel${TARGET_VERSION}-tools]=kernel${SOURCE_VERSION}-tools [kernel${TARGET_VERSION}-tools-devel]=kernel${SOURCE_VERSION}-tools-devel [perf${TARGET_VERSION}]=perf${SOURCE_VERSION} [python3-perf${TARGET_VERSION}]=python3-perf${SOURCE_VERSION} ) $ for pkg in "${!pkgs[@]}"; do rpm -q "${pkgs["$pkg"]}" && sudo dnf -y swap "${pkgs["$pkg"]}" $pkg ; done
  3. Instale o pacote do kernel de destino:

    $ sudo dnf install -y kernel${TARGET_VERSION}
  4. Obtenha a versão mais recente do pacote do kernel de destino:

    $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1)
  5. Torne o kernel de destino seu kernel padrão:

    $ sudo grubby --set-default "/boot/vmlinuz-$version"
  6. Reinicialize o sistema:

    $ sudo reboot
  7. Desinstale o kernel de origem:

    # Read the source kernel version from the saved file $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version) # Uninstall the source kernel $ sudo dnf remove -y kernel${SOURCE_VERSION}

AL2023 kernels - Perguntas frequentes

1. Preciso reinicializar após uma atualização do kernel?

Toda alteração no kernel em execução requer uma reinicialização.

2. Como faço para manter os kernels up-to-date em várias instâncias?

O Amazon Linux não fornece recursos para gerenciar frotas de instâncias. Recomendamos que você aplique patches em grandes frotas usando ferramentas como o AWS Systems Manager.

3. Como faço para verificar qual versão do kernel está em execução no momento?

Execute esse comando na sua AL2023 instância:

$ uname -r

4. Qual kernel me AL2023 recomenda usar?

É recomendável atualizar para o AL2023 kernel 6.18 mais recente enquanto todos os outros AL2023 kernels ainda são suportados. Recomenda-se que os clientes testem suas cargas de trabalho antes da atualização.

5. Meus aplicativos existentes funcionarão com qualquer AL2023 kernel?

AL2023 suporta um kernel mais novo (6.12 ou 6.18) da mesma forma que o kernel 6.1. Os aplicativos funcionarão e as melhorias estão acontecendo nos bastidores. Em qualquer caso, os clientes devem testar suas cargas de trabalho específicas antes de migrar para um kernel mais novo.

6. Como faço para instalar cabeçalhos do kernel, pacotes de desenvolvimento e módulos extras para o kernel 6.12 ou 6.18?

Execute o seguinte:

$ version=$(uname -r | grep -oP '^\d+\.\d+') $ sudo dnf install -y kernel${version}-modules-extra-$(uname -r) kernel${version}-headers-$(uname -r) kernel${version}-devel-$(uname -r)

7. Por quanto tempo os kernels 6.12 e 6.18 serão suportados?

Os kernel 6.12 e 6.18 terão suporte até o final planejado da vida útil do Amazon Linux 2023, que é 30/06/2029.