Resolver problemas de inicialização da VM do Linux causados por erros fstab


Fstab (tabela do sistema de arquivos) é um arquivo de configuração usado para definir como as montagens de partição de disco, sistema de arquivos e compartilhamento de arquivos na VM do Linux devem persistir após as reinicializações do sistema.

Neste documento, descrevemos várias condições em que uma configuração incorreta de fstab pode resultar em um problema de inicialização e oferecemos orientações para corrigir o problema.

Alguns dos problemas comuns com a configuração incorreta do fstab estão listados abaixo:

  • Erro de sintaxe no arquivo de configuração fstab
  • Um UUID incorreto
  • Existe uma entrada para um dispositivo desconectada/indisponível
  • Descontinuação do uso de opções de montagem, como nobarrier, para o tipo de sistema de arquivos xfs nas imagens SUSE ou RHEL.

Antes de começar

  • Para registrar a saída da porta serial no Cloud Logging, familiarize-se com o Cloud Logging.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Identificar problemas com o fstab

No caso de problemas de inicialização, o Google recomenda que você verifique os registros de inicialização no console serial da VM do Linux. A VM entra no modo de emergência com uma mensagem de erro sugerindo que o problema é com fstab.

  [K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device.
  [[1;33mDEPEND[0m] Dependency failed for /distribution.
  [[1;33mDEPEND[0m] Dependency failed for Local File Systems.
  ...
  Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode.
  Give root password for maintenance
  (or type Control-D to continue)
  

De acordo com a mensagem de erro, há uma falha de dependência para o sistema de arquivos /distribution. A falha de dependência de um ponto de montagem do sistema de arquivos será diferente com base nos nomes desse sistema.

Resolução

Use as opções a seguir para resolver o erro fstab nas VMs do Linux hospedadas no Google Cloud. É possível resolver o problema mais rapidamente usando o console serial em vez do método manual.

Para usar os métodos a seguir para resolver o problema com fstab, é necessário ativar o acesso à porta serial da sua VM.

Opção 1: usar o console serial para fazer login na VM no modo de emergência

  1. Faça login no console serial da VM no console do Google Cloud. Console serial

  2. No modo de emergência atual, insira a senha raiz para acessar sua VM.

  3. Use o editor de texto de sua preferência para abrir o arquivo fstab. Faça as mudanças necessárias e salve-as no arquivo fstab. No exemplo abaixo, o editor vi é usado.

    vi /etc/fstab

    Arquivo fstab

    No exemplo anterior, o dispositivo para /distribution é desconectado da VM. Comente na linha que faz referência ao sistema de arquivos ou remova a entrada do fstab do ponto de montagem /distribution.

    Use man fstab para ver mais detalhes sobre a configuração e a sintaxe do fstab.

  4. Salve o arquivo e saia do editor. Se você estiver usando o editor vi, use ESC + :wq! para salvar e sair dele.

  5. Retome o processo de inicialização digitando reboot no prompt.

  6. Depois de corrigir o problema, o processo de inicialização da VM será concluído, e a solicitação de login será exibida no console serial.

  7. Verifique se é possível fazer login na VM novamente usando SSH.

Opção 2: usar o modo de usuário único no console serial

Essa opção poderá ser usada se a senha raiz não estiver definida.

Pré-requisito: o parâmetro GRUB_TIMEOUT no arquivo de configuração do grub precisa ser definido como um valor diferente de zero. Esse arquivo normalmente está em /etc/default/grub. Porém, em algumas distribuições mais antigas, ele pode estar em um diretório não padrão.

  1. Acesse a página Instâncias de VMs no console do Google Cloud. Acessar instâncias de VM

  2. Faça login no console serial da máquina virtual no console do Google Cloud. Console serial 2

  3. Clique em REDEFINIR a máquina virtual no console do Google Cloud.

    Redefinir arquivo

  4. Na janela do console serial, interrompa o processo de inicialização clicando na tecla de seta para pausar na tela ou no menu do grub.

  5. Na lista de kernels na tela do carregador de inicialização do grub, escolha o kernel e pressione e no teclado.

    arquivo do carregador de inicialização

  6. Adicione o parâmetro rd.break ao final da linha do kernel e pressione ctrl+x. Isso ajuda a inicializar a VM no modo de usuário único.

    Menu do carregador de inicialização

  7. Monte o sistema de arquivos raiz no modo de leitura e gravação.

  8. Analise, faça as mudanças necessárias e salve o arquivo fstab. Use man fstab para obter mais detalhes sobre a configuração e a sintaxe. Use o editor de texto de sua preferência para abrir o arquivo fstab. No exemplo abaixo, usamos o editor de vi.

    vi /etc/fstab

    Arquivo fstab 2

    Neste exemplo, o dispositivo para /distribution é removido da VM. Portanto, comente a linha ou remova a entrada do fstab do ponto de montagem /distribution.

  9. Salve o arquivo e saia do editor. Se você estiver usando o editor de vi, use ESC + :wq! para salvar e sair do fstab.

  10. Retome o processo de inicialização inserindo reboot no prompt.

  11. Depois de corrigir o problema, o processo de inicialização da VM será concluído e você verá o prompt de login no console serial.

  12. Verifique se é possível fazer login na VM usando SSH.