Use o console serial para acessar o GRUB e o modo de usuário único

Observação

O CentOS referenciado neste artigo é uma distribuição do Linux e chegará ao EOL (End Of Life). Considere seu uso e planeje de acordo. Para obter mais informações, confira Diretrizes de Fim de Vida do CentOS.

GRand Unified Bootloader (GRUB) é provavelmente a primeira coisa que você vê ao inicializar uma máquina virtual (VM). Como é exibido antes do início do sistema operacional, o GRUB não pode ser acessado via SSH. No GRUB, você pode modificar sua configuração de inicialização para inicializar no modo de usuário único, entre outras coisas.

O modo de usuário único é um ambiente mínimo com funcionalidade mínima. Pode ser útil para investigar problemas de inicialização, problemas de sistema de arquivos ou problemas de rede. Menos serviços podem ser executados em segundo plano e, dependendo do nível de execução, um sistema de arquivos pode nem ser montado automaticamente.

O modo de usuário único também é útil em situações em que sua VM pode ser configurada para aceitar apenas chaves SSH para entrada. Nesse caso, você pode usar o modo de usuário único para criar uma conta com autenticação de senha.

Observação

O serviço Serial Console permite que apenas usuários com nível contributor ou permissões superiores acessem o console serial de uma VM.

Para entrar no modo de usuário único, digite GRUB quando sua VM estiver inicializando e modifique a configuração de inicialização no GRUB. Veja as instruções detalhadas para entrar no GRUB na próxima seção. Em geral, se sua VM foi configurada para exibir GRUB, você pode usar o botão reiniciar no console serial de sua VM para reiniciar a VM e exibir GRUB.

Captura de tela do botão Reiniciar VM exibido na barra de ferramentas.

Acesso geral ao GRUB

Para acessar o GRUB, reinicie sua VM enquanto o painel Serial Console estiver aberto. Algumas distribuições exigem a entrada do teclado para mostrar o GRUB e outras mostram o GRUB automaticamente por alguns segundos para permitir que a entrada do teclado do usuário cancele o tempo limite.

Para poder acessar o modo de usuário único, você deseja garantir que o GRUB esteja habilitado em sua VM. Dependendo da sua distribuição, pode ser necessário algum trabalho de configuração para garantir que o GRUB esteja habilitado. Para obter mais informações específicas da distribuição, veja a próxima seção.

Reinicie sua VM para acessar o GRUB no console serial

Você pode reiniciar sua VM no console serial passando o mouse sobre o botão Reiniciar e selecionando Reiniciar VM. Uma notificação sobre a reinicialização é exibida na parte inferior do painel.

Você também pode reiniciar sua VM executando um comando SysRq "b" se SysRq estiver ativado. Para saber o que esperar do GRUB ao reinicializar, consulte as instruções específicas da distribuição nas próximas seções.

O GIF animado mostra uma interface de linha de comando. O usuário seleciona Reiniciar VM na barra de ferramentas e, em seguida, a VM no Console Serial é reiniciada.

Acesso geral ao modo de usuário único

Você pode precisar de acesso manual ao modo de usuário único quando não configurou uma conta com autenticação de senha. Modifique a configuração do GRUB para entrar manualmente no modo de usuário único. Depois de fazer isso, consulte a seção "Usar o modo de usuário único para redefinir ou adicionar uma senha" para obter mais instruções.

Se a VM não conseguir inicializar, as distribuições geralmente colocam você automaticamente no modo de usuário único ou no modo de emergência. Outras distribuições, no entanto, requerem configuração adicional, como a configuração de uma senha de root, antes que possam colocá-lo automaticamente no modo de usuário único ou de emergência.

Use o modo de usuário único para redefinir ou adicionar uma senha

Depois que estiver no modo de usuário único, adicione um novo usuário com privilégios sudo fazendo o seguinte:

  1. Execute useradd <username> para adicionar um usuário.
  2. Execute sudo usermod -a -G sudo <username> para conceder privilégios raiz ao novo usuário.
  3. Use passwd <username> para definir a senha para o novo usuário. Você pode entrar como o novo usuário.

Acesso para Red Hat Enterprise Linux (RHEL)

Se o RHEL não puder inicializar normalmente, ele o colocará no modo de usuário único automaticamente. No entanto, se você não configurou o acesso root para o modo de usuário único, não possui uma senha root e não pode entrar. Há uma solução alternativa (consulte a seção "Entrar manualmente no modo de usuário único no RHEL"), mas sugerimos que você configure o acesso root inicialmente.

Acesso GRUB no RHEL

RHEL vem com GRUB habilitado pronto para uso. Para entrar no GRUB, reinicie sua VM executando sudo reboot e pressione qualquer tecla. O painel GRUB deve ser exibido. Se não estiver, certifique-se de que as seguintes linhas estejam presentes em seu arquivo GRUB (/etc/default/grub):

Para RHEL 8

Observação

A Red Hat recomenda usar o Grubby para configurar os parâmetros da linha de comando do kernel no RHEL 8. No momento, não é possível atualizar o tempo limite do grub e os parâmetros do terminal usando o grubby. Para modificar a atualização do argumento GRUB_CMDLINE_LINUX para todas as entradas de inicialização, execute grubby --update-kernel=ALL --args="console=ttyS0,115200 console=tty1 console=ttyS0 earlyprintk=ttyS0". Mais detalhes estão disponíveis aqui.

GRUB_TIMEOUT=5
GRUB_TERMINAL="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"

Para RHEL 7

GRUB_TIMEOUT=5
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 net.ifnames=0"

Observação

A Red Hat também fornece documentação para inicializar no modo de resgate, modo de emergência ou modo de depuração e para redefinir a senha root. Para obter instruções, consulte Edição do menu do terminal durante a inicialização.

Configure o acesso raiz para o modo de usuário único no RHEL

O usuário raiz está desabilitado por padrão. O modo de usuário único no RHEL requer que o usuário root esteja ativado. Se você precisar habilitar o modo de usuário único, use as seguintes instruções:

  1. Entre no sistema Red Hat via SSH.
  2. Mude para raiz.
  3. Habilite a senha para o usuário raiz fazendo o seguinte:
    • Execute passwd root (defina uma senha raiz forte).
  4. Assegure-se de que o usuário raiz possa se conectar somente via ttyS0 fazendo o seguinte: a. Execute vi /etc/ssh/sshd_config e certifique-se de que PermitRootLogIn esteja definido como no. b. Execute vi /etc/securetty file para permitir o login somente via ttyS0.

Agora, se o sistema inicializar no modo de usuário único, você poderá entrar com a senha root.

Como alternativa, para RHEL 7.4 ou 6.9, para ativar o modo de usuário único nos prompts do GRUB, consulte Inicialização no modo de usuário único.

Entrar manualmente no modo de usuário único no RHEL

Se você configurou o GRUB e o acesso root usando as instruções anteriores, pode entrar no modo de usuário único fazendo o seguinte:

  1. Para entrar no GRUB, pressione Esc ao reiniciar a VM.

  2. No GRUB, pressione E para editar o sistema operacional no qual deseja inicializar. O sistema operacional geralmente é listado na primeira linha.

  3. Encontre a linha do kernel. No Azure, começa com linux ou linux16.

  4. Pressione Ctrl E para ir para o final da linha.

  5. No final da linha, adicione systemd.unit=rescue.target.

    Esta ação inicializa você no modo de usuário único. Se você quiser usar o modo de emergência, adicione systemd.unit=emergency.target ao final da linha (em vez de systemd.unit=rescue.target).

  6. Pressione Ctrl X para sair e reiniciar com as configurações aplicadas.

    Você será solicitado a fornecer a senha do administrador antes de entrar no modo de usuário único. Esta senha é aquela que você criou nas instruções anteriores.

    O GIF animado mostra uma interface de linha de comando. O usuário seleciona um servidor, localiza o final da linha do kernel e insere o texto especificado.

Entrar no modo de usuário único sem conta raiz habilitada no RHEL

Se você não habilitou o usuário root seguindo as instruções anteriores, ainda pode redefinir sua senha root fazendo o seguinte:

Observação

Se você estiver usando o SELinux, ao redefinir a senha root, certifique-se de seguir as etapas adicionais descritas na documentação da Red Hat.

  1. Para entrar no GRUB, pressione Esc ao reiniciar a VM.

  2. No GRUB, pressione E para editar o sistema operacional no qual deseja inicializar. O sistema operacional geralmente é listado na primeira linha.

  3. Encontre a linha do kernel. No Azure, começa com linux16.

  4. No final da linha, adicione rd.break ao final da linha. Deixe um espaço entre a linha do kernel e rd.break.

    Esta ação interrompe o processo de inicialização antes que o controle seja passado de initramfs para systemd, conforme descrito na documentação da Red Hat.

  5. Pressione Ctrl X para sair e reiniciar com as configurações aplicadas.

    Após a reinicialização, você entra no modo de emergência com um sistema de arquivos somente leitura.

  6. No shell, insira mount -o remount,rw /sysroot para remontar o sistema de arquivos raiz com permissões de leitura/gravação.

  7. Depois de inicializar no modo de usuário único, digite chroot /sysroot para alternar para a cadeia sysroot.

  8. Agora você está no root e pode começar a solucionar os problemas do sistema.

  9. No RHEL, o modo de imposição do SELinux protege o sistema operacional de quaisquer alterações. Você pode executar touch /.autorelabel para rotular novamente o sistema de arquivos após a alteração da senha.

  10. Depois de terminar, digite reboot -f para reiniciar.

O GIF animado mostra o processo de entrada no modo de usuário único sem conta root habilitada no RHEL na interface de linha de comando.

Observação

Executar as instruções anteriores leva você ao shell de emergência para que também possa executar tarefas como editar fstab. No entanto, normalmente sugerimos que você redefina sua senha root e a use para entrar no modo de usuário único.

Acesso para CentOS

Assim como o Red Hat Enterprise Linux, o modo de usuário único no CentOS requer que o GRUB e o usuário root estejam ativados.

Acesso GRUB no CentOS

CentOS vem com GRUB habilitado fora da caixa. Para entrar no GRUB, reinicie sua VM digitando sudo reboot e pressione qualquer tecla. Esta ação exibe o painel GRUB.

Modo de usuário único no CentOS

Para ativar o modo de usuário único no CentOS, siga as instruções anteriores para RHEL.

Acesso para Ubuntu

As imagens do Ubuntu não requerem uma senha de root. Se o sistema inicializar no modo de usuário único, você poderá usá-lo sem credenciais adicionais.

Acesso GRUB no Ubuntu

Para acessar o GRUB, pressione e segure Esc enquanto a VM está inicializando.

Por padrão, as imagens do Ubuntu podem não exibir automaticamente o painel GRUB. Você pode alterar a configuração fazendo o seguinte:

  1. Em um editor de texto, abra o arquivo /etc/default/grub.d/50-cloudimg-settings.cfg.

  2. Altere o valor GRUB_TIMEOUT para um valor diferente de zero.

  3. Em um editor de texto, abra /etc/default/grub.

  4. Comente a linha GRUB_HIDDEN_TIMEOUT=1.

  5. Certifique-se de que haja uma linha GRUB_TIMEOUT_STYLE=menu.

  6. Execute sudo update-grub.

Modo de usuário único no Ubuntu

Se o Ubuntu não inicializar normalmente, ele o coloca automaticamente no modo de usuário único. Para entrar no modo de usuário único manualmente, faça o seguinte:

  1. No GRUB, pressione E para editar sua entrada de inicialização (a entrada do Ubuntu).
  2. Procure a linha que começa com linux e, em seguida, procure por ro.
  3. Adicione single após ro, garantindo que haja um espaço antes e depois de single.
  4. Pressione Ctrl X para reiniciar com essas configurações e entrar no modo de usuário único.

Use o GRUB para invocar o bash no Ubuntu

Depois de tentar as instruções anteriores, pode haver uma situação (como uma senha root esquecida) em que você ainda não consegue acessar o modo de usuário único em sua VM Ubuntu. Você também pode dizer ao kernel para executar /bin/bash como inicialização, em vez da inicialização do sistema. Essa ação fornece um bash shell e permite a manutenção do sistema. Use as seguintes instruções:

  1. No GRUB, pressione E para editar sua entrada de inicialização (a entrada do Ubuntu).

  2. Procure a linha que começa com linux e, em seguida, procure por ro.

  3. Substitua ro por rw init=/bin/bash.

    Esta ação monta seu sistema de arquivos como leitura/gravação e usa /bin/bash como o processo de inicialização.

  4. Pressione Ctrl X para reiniciar com essas configurações.

Acesso para CoreOS

O modo de usuário único no CoreOS requer que o GRUB esteja ativado.

Acesso GRUB no CoreOS

Para acessar o GRUB, pressione qualquer tecla enquanto sua VM estiver inicializando.

Modo de usuário único no CoreOS

Se o CoreOS não inicializar normalmente, ele o coloca automaticamente no modo de usuário único. Para entrar no modo de usuário único manualmente, faça o seguinte:

  1. No GRUB, pressione E para editar sua entrada de inicialização.

  2. Procure a linha que começa com linux$. Deve haver duas instâncias da linha, cada uma encapsulada em uma cláusula if...else diferente.

  3. Anexe coreos.autologin=ttyS0 ao final de cada linha linux$.

  4. Pressione Ctrl X para reiniciar com essas configurações e entrar no modo de usuário único.

Acesso para SUSE SLES

As imagens mais recentes do SLES 12 SP3 permitem o acesso por meio do console serial se o sistema inicializar no modo de emergência.

Acesso GRUB no SUSE SLES

O acesso GRUB no SLES requer uma configuração de bootloader via YaST. Para criar a configuração, faça o seguinte:

  1. Use SSH para entrar em sua VM SLES e, em seguida, execute sudo yast bootloader. Pressione Tab, pressione Enter e use as teclas de seta para navegar pelo menu.

  2. Vá para Parâmetros do Kernel e marque a caixa de seleção Usar console serial.

  3. Adicione serial --unit=0 --speed=9600 --parity=no aos argumentos do Console.

  4. Pressione F10 para salvar suas configurações e sair.

  5. Para entrar no GRUB, reinicie sua VM e pressione qualquer tecla durante a sequência de inicialização para manter o painel GRUB exibido.

    O tempo limite padrão para GRUB é 1s. Você pode modificar essa configuração alterando a variáve lGRUB_TIMEOUT no arquivo /etc/default/grub.

O GIF animado mostra o processo de criação da configuração do carregador de inicialização por meio do YaST.

Modo de usuário único no SUSE SLES

Se o SLES não puder inicializar normalmente, você será automaticamente colocado no shell de emergência. Para entrar no shell de emergência manualmente, faça o seguinte:

  1. No GRUB, pressione E para editar sua entrada de inicialização (a entrada SLES).

  2. Procure a linha do kernel que começa com linux.

  3. Anexe systemd.unit=emergency.target ao final da linha do kernel.

  4. Pressione Ctrl X para reiniciar com essas configurações e entre no shell de emergência.

    Observação

    Esta ação coloca você no shell de emergência com um sistema de arquivos somente leitura. Para editar quaisquer arquivos, remonte o sistema de arquivos com permissões de leitura/gravação. Para fazer isso, digite mount -o remount,rw / no shell.

Acesso para Oracle Linux

Assim como o Red Hat Enterprise Linux, o modo de usuário único no Oracle Linux requer que o GRUB e o usuário root estejam habilitados.

Acesso GRUB no Oracle Linux

O Oracle Linux vem com GRUB habilitado pronto para uso. Para entrar no GRUB, reinicie sua VM executando sudo reboot e pressione Esc. Esta ação exibe o painel GRUB. Se o painel GRUB não for exibido, verifique se o valor da linha GRUB_TERMINAL contém console serial (isto é,GRUB_TERMINAL="serial console"). Recrie o GRUB com grub2-mkconfig -o /boot/grub/grub.cfg.

Modo de usuário único no Oracle Linux

Para ativar o modo de usuário único no Oracle Linux, siga as instruções anteriores para RHEL.

Próximas etapas

Para saber mais sobre o console serial, consulte:

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.