Solução de Problemas do Unbreakable Enterprise Kernel

Se você estiver tendo problemas com o UEK (Unbreakable Enterprise Kernel) em instâncias do Oracle Linux no Oracle Cloud Infrastructure, revise as informações a seguir.

Consulte também: Problemas Conhecidos do Unbreakable Enterprise Kernel.

Falha na inicialização da instância após a atualização para uma nova versão do kernel

Quando você atualiza para o kernel UEK Release 7 mais recente, o log da console mostra o seguinte erro:

error: ../../grub-core/fs/fshelp.c:258:file `/initramfs-5.15.0-206.153.7.el8uek.x86_64.img' not found.

Este erro ocorre porque não havia espaço suficiente em /boot quando o kernel foi instalado, o arquivo initramfs não foi criado ou não foi criado corretamente. Você pode tentar inicializar em um kernel anterior, verificar erros na configuração do carregador de inicialização (como o GRUB) e verificar a integridade da imagem initramfs.

Para solucionar problemas, recrie a imagem initramfs, remova kernels não utilizados para liberar espaço no diretório /boot ou faça os dois.

Recriar a imagem initramfs

Siga as etapas abaixo para recriar a imagem initramfs.

  1. Em uma linha de comando, usando privilégios administrativos, estabeleça conexão com a instância usando SSH.
  2. Verifique se o arquivo initramfs do kernel que não será inicializado existe executando ls -l /boot/initramfs-*.img.
    ls -l /boot/initramfs-*.img
    -rw-------. 1 root root 90917795 Feb 12 19:33 /boot/initramfs-0-rescue-7063910fe2979258f8fd66f2fb8b8567.img
    -rw-------. 1 root root 76584495 Mar 24 14:40 /boot/initramfs-4.18.0-553.40.1.el8_10.x86_64.img
    -rw-------. 1 root root 90117038 Mar 24 23:51 /boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img
    -rw-------. 1 root root 35099136 Mar 24 14:57 /boot/initramfs-5.15.0-305.176.4.el8uek.x86_64kdump.img
    Dica

    Você pode identificar os kernels do Oracle Linux pelo el8uek no nome da imagem initramfs: /boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img
  3. Faça backup da imagem initramfs do kernel atualizado copiando-a para um diretório diferente de /boot. Por exemplo, para copiar /boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img para o diretório /root, execute:
    sudo cp /boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img /root
  4. Recrie a imagem initramfs para o kernel atualizado, por exemplo:
    sudo dracut --kver 5.15.0-305.176.4.el8uek.x86_64 --force
  5. Verifique se o initramfs foi recriado, por exemplo:
    sudo ls -l /boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img

    Observe a alteração de data:

    -rw-------. 1 root root 90117038 Apr  2 23:51 /boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img
  6. Reinicialize a instância para verificar se a instância agora pode ser inicializada com o kernel atualizado.

Remover kernel não utilizado

Siga as etapas abaixo para liberar espaço de inicialização removendo kernels não utilizados.

  1. Em uma linha de comando, usando privilégios administrativos, estabeleça conexão com a instância usando SSH.
  2. Limpe o sistema de arquivos /boot removendo kernels antigos ou indesejados. Por exemplo, se você não precisar mais do Red Hat Compatible Kernels (RHCK), ele poderá ser removido, liberando o espaço /boot.
    1. Verifique o espaço disponível em /boot.
      df -h /boot
      Filesystem      Size  Used Avail Use% Mounted on
      /dev/sda2      1014M 1006M  8.7M 100% /boot 
    2. Procure os RHCKs.
      sudo rpm -qa | grep kernel-core
      kernel-core-4.18.0-553.40.1.el8_10.x86_64 
    3. Remova os RHCKs indesejados.
      sudo dnf remove -y kernel-core-4.18.0-553.40.1.el8_10.x86_64
  3. Verifique novamente o espaço disponível em /boot.
    df -h /boot
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sdb2      1014M  782M  233M  78% /boot
  4. Reinicialize a instância para verificar se a instância agora pode ser inicializada com o kernel atualizado.