Como solucionar problemas de uma instância do Linux do EC2 que falhou na verificação do status da instância devido a problemas no sistema operacional?

10 minuto de leitura
0

Minha instância do Linux do Amazon Elastic Compute Cloud (Amazon EC2) falhou na verificação do status da instância devido a problemas no sistema operacional. Agora, ela não inicializa com sucesso.

Breve descrição

Sua instância do Linux do EC2 pode falhar na verificação do status da instância pelos seguintes motivos:

  • Você atualizou o kernel e o novo kernel não inicializou.
  • As entradas do sistema de arquivos em /etc/fstab estão incorretas ou o sistema de arquivos está corrompido.
  • Há configurações de rede incorretas na instância.

Resolução

Há três métodos para solucionar problemas do sistema operacional.

Importante: alguns dos procedimentos a seguir exigem a interrupção da instância. Os dados armazenados nos volumes de armazenamento de instância são perdidos quando a instância é interrompida. Salve um backup dos dados antes de interromper a instância. Diferentemente dos volumes baseados no Amazon Elastic Block Store (Amazon EBS), os volumes de armazenamento de instância são efêmeros e não oferecem suporte à persistência de dados.

O endereço IPv4 estático público que o Amazon EC2 atribuiu automaticamente à instância na inicialização ou no início muda após a interrupção e o início. Para manter um endereço IPv4 público que não muda quando a instância é interrompida, use um endereço IP elástico.

Para mais informações, consulte O que acontece quando uma instância é interrompida.

Usar o console de Série do EC2 para instâncias do Linux

Se você ativou o Console de Série do EC2 para instâncias do Linux, poderá usá-lo para solucionar problemas com tipos de instâncias baseadas em Nitro compatíveis e instâncias bare metal. O console de série ajuda a solucionar problemas de inicialização e de configuração de rede e SSH. O console de série se conecta à sua instância sem precisar de uma conexão de rede em funcionamento. Para acessar o console de série, use o console do Amazon EC2 ou a AWS Command Line Interface (AWS CLI).

Se você estiver usando o console de série do EC2 pela primeira vez, verifique os pré-requisitos e configure o acesso antes de tentar se conectar.

Se sua instância estiver inacessível e você não tiver configurado o acesso ao console de série, siga as instruções em Executar a ferramenta EC2Rescue para Linux ou Usar uma instância de resgate. Para obter informações sobre como configurar o console de série do EC2 para instâncias do Linux, consulte Configurar o acesso ao console de série do EC2.

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar usando a versão mais recente da AWS CLI.

Executar a ferramenta EC2Rescue para Linux

O EC2Rescue para Linux diagnostica e soluciona problemas automaticamente em sistemas operacionais em instâncias inacessíveis. Para mais informações, consulte Como usar o EC2Rescue para Linux para solucionar problemas no nível do sistema operacional?

Corrija erros manualmente usando uma instância de resgate

1.    Inicie uma nova instância do EC2 na nuvem privada virtual (VPC). Use a mesma imagem de máquina da Amazon (AMI) e a mesma zona de disponibilidade da instância danificada. A nova instância se torna sua instância de resgate.

Ou use uma instância existente. A instância existente deve usar a mesma AMI e estar na mesma zona de disponibilidade da instância danificada.

2.    Interrompa a instância danificada.

3.    Separe o volume raiz do Amazon Elastic Block Store (Amazon EBS) (/dev/xvda ou /dev/sda1) da sua instância danificada. Anote o nome do dispositivo (/dev/xvda ou /dev/sda1) do volume raiz.

4.    Anexe o volume como um dispositivo secundário (/dev/sdf) à instância de resgate.

5.    Conecte-se à instância de resgate usando SSH.

6.    Crie um diretório de pontos de montagem (/rescue) para o novo volume anexado à instância de resgate:

$ sudo mkdir /rescue

7.    Monte o volume no novo diretório:

$ sudo mount /dev/xvdf1 /rescue

Se você receber um erro, como Tipo errado de Fs ou duplicata de UUID, falta Superblock ou badblock encontrado, consulte Por que não consigo montar meu volume do Amazon EBS?

Observação: o dispositivo (/dev/xvdf1) pode ser anexado à instância de resgate com um nome de dispositivo diferente. Para determinar o nome correto do dispositivo, execute o comando lsblk para visualizar os dispositivos de disco disponíveis juntamente com seus pontos de montagem.

8.    Se ainda não tiver feito isso, recupere o log do sistema da instância para verificar o erro. As próximas etapas dependem da mensagem de erro listada no log do sistema. A seguir, há uma lista de erros comuns que causam falha na verificação do status da instância. Para ver outros erros, consulte Solução de problemas de erros de log do sistema de instâncias baseadas em Linux.

Pânico de Kernel

Se uma mensagem de erro de Pânico de Kernel estiver no log do sistema, talvez o kernel não tenha os arquivos vmlinuz ou initramfs. Os arquivos vmlinuz e initramfs são necessários para uma inicialização bem-sucedida.

1.    Execute os seguintes comandos:

cd /rescue/boot
ls -l

2.    Verifique a saída para conferir se há arquivos vmlinuz e initramfs correspondentes à versão do kernel que você deseja inicializar.

O exemplo de saída a seguir é para uma instância do Amazon Linux 2 com a versão do kernel, 4.14.165-131.185.amzn2.x86_64. O diretório /boot tem os arquivos initramfs-4.14.165-131.185.amzn2.x86_64.img e vmlinuz-4.14.165-131.185.amzn2.x86_64. Portanto, a inicialização será bem-sucedida.

uname -r
4.14.165-131.185.amzn2.x86_64

cd /boot; ls -l
total 39960
-rw-r--r-- 1 root root      119960 Jan 15 14:34 config-4.14.165-131.185.amzn2.x86_64
drwxr-xr-x 3 root root     17 Feb 12 04:06 efi
drwx------ 5 root root       79 Feb 12 04:08 grub2
-rw------- 1 root root 31336757 Feb 12 04:08 initramfs-4.14.165-131.185.amzn2.x86_64.img
-rw-r--r-- 1 root root    669087 Feb 12 04:08 initrd-plymouth.img
-rw-r--r-- 1 root root    235041 Jan 15 14:34 symvers-4.14.165-131.185.amzn2.x86_64.gz
-rw------- 1 root root   2823838 Jan 15 14:34 System.map-4.14.165-131.185.amzn2.x86_64
-rwxr-xr-x 1 root root   5718992 Jan 15 14:34 vmlinuz-4.14.165-131.185.amzn2.x86_64

3.    Se os arquivos initramfs e vmlinuz não estiverem presentes, tente inicializar a instância usando um kernel anterior que tenha ambos os arquivos. Para obter instruções sobre como inicializar sua instância usando um kernel antigo, consulte Como reverter para um kernel estável conhecido depois de uma atualização impedir a reinicialização da minha instância do Amazon EC2?

4.    Execute o comando desmontar para desmontar o dispositivo secundário da instância de resgate:

$ sudo umount /rescue

Se a operação de desmontagem não for bem-sucedida, talvez seja necessário interromper ou reinicializar a instância de recuperação para uma desmontagem limpa.

5.    Separe o volume secundário (/dev/sdf) da instância de resgate e, em seguida, anexe o volume à instância original como /dev/xvda (volume raiz).

6.    Inicie a instânciae, em seguida, verifique se ela responde.

Para obter informações adicionais sobre como resolver erros de pânico do kernel, consulte Por que vejo um erro de "Pânico do kernel" depois de atualizar o kernel ou reinicializar minha instância do Linux do EC2?

Falha na montagem ou Falha na dependência

Erros como "Falha na montagem" ou "Falha na dependência" no log do sistema indicam que o arquivo /etc/fstab tem entradas de ponto de montagem incorretas.

1.    Verifique se as entradas do ponto de montagem em /etc/fstab estão corretas. Para obter informações sobre como corrigir as entradas do arquivo /etc/fstab, consulte a seção Falhas de montagem automática devido a entradas incorretas no arquivo /etc/fstab em Por que minha instância do Linux do EC2 entra no modo de emergência quando tento inicializá-la?

2.    A prática recomendada é executar a ferramenta xfs_repair para corrigir qualquer erro do sistema de arquivos. Se houver inconsistências no sistema de arquivos, a ferramenta fsck ou xfs_repair as corrige.

Observação: crie um backup do seu sistema de arquivos antes de executar a ferramenta fsck ou xfs_repair.

Execute o comando desmontar para desmontar o ponto de montagem antes de executar a ferramenta fsck ou xfs_repair:

$ sudo umount /rescue

Execute a ferramenta fsck ou xfs_repair, dependendo do seu sistema de arquivos.

Para sistemas de arquivos ext4:

$ sudo fsck /dev/sdf
fsck from util-linux 2.30.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdf: clean, 11/6553600 files,
459544/26214400 blocks

Para sistemas de arquivos XFS:

$ sudo xfs_repair /dev/sdf
xfs_repair /dev/xvdf
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done

3.    Separe o volume secundário (/dev/sdf) da instância de resgate e, em seguida, anexe o volume à instância original como /dev/xvda (volume raiz).

4.    Inicie a instânciae, em seguida, verifique se ela responde.

Abrindo a interface eth0: falha

Verifique se o arquivo ifcfg-eth0 tem as entradas de rede corretas. O arquivo de configuração de rede correspondente à interface primária, eth0, está localizado em /etc/sysconfig/network-scripts/ifcfg-eth0. Se o nome do dispositivo da sua interface primária não for eth0, há um arquivo que começa com ifcfg e é seguido pelo nome do seu dispositivo. O arquivo está no diretório /etc/sysconfig/network-scripts na instância.

1.    Execute o comando cat para visualizar o arquivo de configuração de rede da interface primária, eth0.

Veja a seguir as entradas corretas para o arquivo de configuração de rede localizado em /etc/sysconfig/network-scripts/ifcfg-eth0.

Observação: substitua eth0 no comando a seguir pelo nome da sua interface primária, se for diferente.

$ sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
DHCPV6C=yes
DHCPV6C_OPTIONS=-nw
PERSISTENT_DHCLIENT=yes
RES_OPTIONS="timeout:2 attempts:5"
DHCP_ARP_CHECK=no

2.    Verifique se ONBOOT está definido como sim, conforme mostrado no exemplo anterior. Se ONBOOT não estiver definido como sim, então eth0 (ou sua interface de rede primária) não está configurado para aparecer na inicialização.

Para alterar o valor de ONBOOT:

Abra o arquivo em um editor. Neste exemplo, o editor vi é usado.

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

Pressione I para inserir.

Role o cursor até a entrada ONBOOT e altere o valor para sim.

Salve e feche o arquivo pressionando :wq!

3.    Execute o comando desmontar para desmontar o dispositivo secundário da instância de resgate:

$ sudo umount /rescue

Se a operação de desmontagem não for bem-sucedida, talvez seja necessário interromper ou reinicializar a instância de resgate para permitir uma desmontagem limpa.

4.    Separe o volume secundário (/dev/sdf) da instância de resgate e, em seguida, anexe o volume à instância original como /dev/xvda (volume raiz).

5.    Inicie a instância e, em seguida, verifique se ela responde

Informações relacionadas

Por que minha instância do Linux do EC2 está inacessível e está falhando em uma ou em ambas as verificações de status?

Solucionar problemas de instâncias com falhas nas verificações de status

Por que minha instância do Linux não está inicializando depois que eu mudei seu tipo para um tipo de instância baseado em Nitro?

AWS OFICIAL
AWS OFICIALAtualizada há 8 meses