

# Pré-requisitos do Console de Série do EC2
<a name="ec2-serial-console-prerequisites"></a>

**Topics**
+ [Regiões da AWS](#sc-prereqs-regions)
+ [Zonas do Wavelength e AWS Outposts](#sc-prereqs-wavelength-zones-outposts)
+ [Zonas Locais](#sc-prereqs-local-zones)
+ [Tipos de instância](#sc-prereqs-instance-types)
+ [Concessão de acesso](#sc-prereqs-configure-ec2-serial-console)
+ [Suporte para cliente baseado em navegador](#sc-prereqs-for-browser-based-connection)
+ [Estado da instância](#sc-prereqs-instance-state)
+ [Amazon EC2 Systems Manager](#sc-prereqs-ssm)
+ [Configurar a ferramenta de solução de problemas escolhida](#sc-prereqs-configure-troubleshooting-tool)

## Regiões da AWS
<a name="sc-prereqs-regions"></a>

Disponibilidade em todas as Regiões da AWS, exceto Ásia-Pacífico (Taipei).

## Zonas do Wavelength e AWS Outposts
<a name="sc-prereqs-wavelength-zones-outposts"></a>

Sem compatibilidade.

## Zonas Locais
<a name="sc-prereqs-local-zones"></a>

Compatível em todas as zonas locais.

## Tipos de instância
<a name="sc-prereqs-instance-types"></a>

Tipos de instâncias compatíveis:
+ **Linux**
  + Todas as instâncias virtualizadas criadas no Nitro System.
  + Todas instâncias bare metal, exceto:
    + Uso geral: `a1.metal`, `mac1.metal`, `mac2.metal`
    + Computação acelerada: `g5g.metal`
    + Otimizadas para memória: `u-6tb1.metal`, `u-9tb1.metal`, `u-12tb1.metal`, `u-18tb1.metal`, `u-24tb1.metal`
+ **Windows**

  Todas as instâncias virtualizadas criadas no Nitro System. Não há suporte para instâncias bare metal.

## Concessão de acesso
<a name="sc-prereqs-configure-ec2-serial-console"></a>

Você deve concluir as tarefas de configuração para conceder acesso ao Console de Série do EC2. Para obter mais informações, consulte [Configurar o acesso ao Console de Série do EC2](configure-access-to-serial-console.md).

## Suporte para cliente baseado em navegador
<a name="sc-prereqs-for-browser-based-connection"></a>

Para se conectar ao console de série[Usando o cliente com base em navegador](connect-to-serial-console.md#sc-connect-browser-based-client), seu navegador deve suportar WebSocket. Se o navegador não suportar WebSocket, conecte-se ao console de série[Usando sua própria chave e um cliente SSH.](connect-to-serial-console.md#sc-connect-SSH)

## Estado da instância
<a name="sc-prereqs-instance-state"></a>

Deve ser `running`.

Você não poderá se conectar ao console de série se a instância estiver no estado `pending`, `stopping`, `stopped`, `shutting-down` ou `terminated`.

Para obter mais informações sobre os estados da instância, consulte [Alterações do estado de instâncias do Amazon EC2](ec2-instance-lifecycle.md).

## Amazon EC2 Systems Manager
<a name="sc-prereqs-ssm"></a>

Se a instância usar o Amazon EC2 Systems Manager, o SSM Agent versão 3.0.854.0 ou posterior deve ser instalado na instância. Para obter mais informações sobre o SSM Agent, consulte [Trabalhar com o SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) no *Guia do usuário do AWS Systems Manager*.

## Configurar a ferramenta de solução de problemas escolhida
<a name="sc-prereqs-configure-troubleshooting-tool"></a>

Para solucionar problemas da instância usando console de série, você pode usar o GRUB ou o SysRq nas instâncias do Linux e o Special Admin Console (SAC) nas instâncias do Windows. Antes de usar essas ferramentas, é necessário executar as etapas de configuração em cada instância em que elas serão usadas.

Use as instruções para o sistema operacional da sua instância para configurar a ferramenta de solução de problemas escolhida.

### (Instâncias do Linux) Configurar o GRUB
<a name="configure-grub"></a>

Para configurar o GRUB, escolha um dos seguintes procedimentos com base na AMI que foi usada para executar a instância.

------
#### [ Amazon Linux 2 ]

**Para configurar o GRUB em uma instância do Amazon Linux 2**

1. [Conectar-se à instância do Linux usando SSH](connect-to-linux-instance.md)

1. Adicione ou altere as seguintes opções em `/etc/default/grub`:
   + Defina `GRUB_TIMEOUT=1`.
   + Adicionar `GRUB_TERMINAL="console serial"`.
   + Adicionar `GRUB_SERIAL_COMMAND="serial --speed=115200"`.

   Veja a seguir um exemplo de `/etc/default/grub`. É possível precisar alterar a configuração com base na configuração do seu sistema.

   ```
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0"
   GRUB_TIMEOUT=1
   GRUB_DISABLE_RECOVERY="true"
   GRUB_TERMINAL="console serial"
   GRUB_SERIAL_COMMAND="serial --speed=115200"
   ```

1. Aplique a configuração atualizada executando o comando a seguir.

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

------
#### [ Ubuntu ]

**Para configurar o GRUB em uma instância do Ubuntu**

1. [Conecte-se à sua instância](connect-to-linux-instance.md).

1. Adicione ou altere as seguintes opções em `/etc/default/grub.d/50-cloudimg-settings.cfg`:
   + Defina `GRUB_TIMEOUT=1`.
   + Adicionar `GRUB_TIMEOUT_STYLE=menu`.
   + Adicionar `GRUB_TERMINAL="console serial"`.
   + Remover `GRUB_HIDDEN_TIMEOUT`.
   + Adicionar `GRUB_SERIAL_COMMAND="serial --speed=115200"`.

   Veja a seguir um exemplo de `/etc/default/grub.d/50-cloudimg-settings.cfg`. É possível precisar alterar a configuração com base na configuração do seu sistema.

   ```
   # Cloud Image specific Grub settings for Generic Cloud Images
   # CLOUD_IMG: This file was created/modified by the Cloud Image build process
   
   # Set the recordfail timeout
   GRUB_RECORDFAIL_TIMEOUT=0
   
   # Do not wait on grub prompt
   GRUB_TIMEOUT=1
   GRUB_TIMEOUT_STYLE=menu
   
   # Set the default commandline
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295"
   
   # Set the grub console type
   GRUB_TERMINAL="console serial"
   GRUB_SERIAL_COMMAND="serial --speed 115200"
   ```

1. Aplique a configuração atualizada executando o comando a seguir.

   ```
   [ec2-user ~]$ sudo update-grub
   ```

------
#### [ RHEL ]

**Para configurar o GRUB em uma instância do RHEL**

1. [Conecte-se à sua instância](connect-to-linux-instance.md).

1. Adicione ou altere as seguintes opções em `/etc/default/grub`:
   + Remover `GRUB_TERMINAL_OUTPUT`.
   + Adicionar `GRUB_TERMINAL="console serial"`.
   + Adicionar `GRUB_SERIAL_COMMAND="serial --speed=115200"`.

   Veja a seguir um exemplo de `/etc/default/grub`. É possível precisar alterar a configuração com base na configuração do seu sistema.

   ```
   GRUB_TIMEOUT=1
   GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
   GRUB_DEFAULT=saved
   GRUB_DISABLE_SUBMENU=true
   GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto"
   GRUB_DISABLE_RECOVERY="true"
   GRUB_ENABLE_BLSCFG=true
   GRUB_TERMINAL="console serial"
   GRUB_SERIAL_COMMAND="serial --speed=115200"
   ```

1. Aplique a configuração atualizada executando o comando a seguir.

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
   ```

   Para o RHEL 9.2 e anteriores, use o comando a seguir.

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

------
#### [ CentOS ]

Para instâncias executadas usando uma AMI do CentOS, o GRUB é configurado para o console de série por padrão.

Veja a seguir um exemplo de `/etc/default/grub`. Sua configuração pode ser diferente com base na configuração do sistema.

```
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"
```

------

### (Instâncias do Linux) Configurar o SysRq
<a name="configure-sysrq"></a>

Para configurar o SysRq, habilite os comandos do SysRq para o ciclo de inicialização atual. Para tornar a configuração persistente, você também pode habilitar os comandos SysRq para inicializações subsequentes.

**Para habilitar todos os comandos SysRq para o ciclo de inicialização atual**

1. [Conecte-se à sua instância](connect-to-linux-instance.md).

1. Execute o seguinte comando.

   ```
   [ec2-user ~]$ sudo sysctl -w kernel.sysrq=1
   ```

   Essa configuração será limpa na próxima reinicialização.

**Para habilitar todos os comandos do SysRq para inicializações subsequentes**

1. Crie o arquivo `/etc/sysctl.d/99-sysrq.conf` e abra-o no seu editor favorito.

   ```
   [ec2-user ~]$ sudo vi /etc/sysctl.d/99-sysrq.conf
   ```

1. Adicione a seguinte linha.

   ```
   kernel.sysrq=1
   ```

1. Reinicie a instância para aplicar as alterações.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. No prompt de `login`, insira o nome do usuário com a senha que você [configurou anteriormente](configure-access-to-serial-console.md#set-user-password) e, em seguida, pressione **Enter**.

1. No prompt `Password`, insira a senha e, a seguir, pressione **Enter**.

### (Instâncias do Windows) Habilitar o SAC e o menu de inicialização
<a name="configure-sac-bootmenu"></a>

**nota**  
Se você habilitar o SAC em uma instância, os serviços do EC2 que dependem de recuperação de senha não funcionarão no console do Amazon EC2. Os agentes de execução do Windows no Amazon EC2 (EC2Config, EC2Launch v1 e EC2Launch v2) dependem do console de série para executar várias tarefas. Essas tarefas não são executadas com êxito quando você habilita o SAC em uma instância. Para obter mais informações sobre o Windows nos agentes de inicialização do Amazon EC2, consulte [Configurar a instância do Windows do Amazon EC2](ec2-windows-instances.md). Se você habilitar o SAC, poderá desabilitá-lo posteriormente. Para obter mais informações, consulte [Desabilitar o SAC e o menu de inicialização](troubleshoot-using-serial-console.md#disable-sac-bootmenu).

Use um dos métodos a seguir para habilitar o SAC e o menu de inicialização em uma instância.

------
#### [ PowerShell ]

**Para habilitar o SAC e o menu de inicialização em uma instância do Windows**

1. [Conecte-se](connecting_to_windows_instance.md) à sua instância e execute as seguintes etapas na linha de comando do PowerShell.

1. Habilite o SAC.

   ```
   bcdedit /ems '{current}' on
   bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
   ```

1. Habilite o menu de inicialização.

   ```
   bcdedit /set '{bootmgr}' displaybootmenu yes
   bcdedit /set '{bootmgr}' timeout 15
   bcdedit /set '{bootmgr}' bootems yes
   ```

1. Aplique a configuração atualizada reinicializando a instância.

   ```
   shutdown -r -t 0
   ```

------
#### [ Command prompt ]

**Para habilitar o SAC e o menu de inicialização em uma instância do Windows**

1. [Conecte-se](connecting_to_windows_instance.md) à sua instância e execute as seguintes etapas no prompt de comando.

1. Habilite o SAC.

   ```
   bcdedit /ems {current} on
   bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
   ```

1. Habilite o menu de inicialização.

   ```
   bcdedit /set {bootmgr} displaybootmenu yes
   bcdedit /set {bootmgr} timeout 15
   bcdedit /set {bootmgr} bootems yes
   ```

1. Aplique a configuração atualizada reinicializando a instância.

   ```
   shutdown -r -t 0
   ```

------