Resolva problemas de arranque de VMs Linux devido a erros fstab


O fstab (tabela do sistema de ficheiros) é um ficheiro de configuração usado para definir como a partição do disco, o sistema de ficheiros e as montagens de partilha de ficheiros na sua VM Linux persistem nos reinícios do sistema.

Este documento descreve várias condições em que uma configuração fstab incorreta pode resultar num problema de arranque e oferece sugestões de resolução de problemas para corrigir o problema.

Seguem-se alguns dos problemas comuns com a configuração incorreta do fstab:

  • Erro de sintaxe no ficheiro de configuração fstab
  • Um UUID incorreto
  • Existe uma entrada para um dispositivo não associado/indisponível
  • Opções de montagem descontinuadas, como nobarrier para o tipo de sistema de ficheiros xfs em imagens SUSE ou RHEL.

Antes de começar

  • Se quiser registar a saída da porta série no Cloud Logging, familiarize-se com o Cloud Logging.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Identifique problemas do fstab

Para problemas de arranque, a Google recomenda vivamente que verifique os registos de arranque na consola série da VM Linux. A VM entra no modo de emergência com uma mensagem de erro que sugere que o problema está no 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, existe uma falha de dependência para o sistema de ficheiros /distribution. A falha de dependência de um ponto de montagem do sistema de ficheiros varia com base nos nomes do sistema de ficheiros usados.

Resolução

Use as seguintes opções para resolver o erro fstab em VMs Linux alojadas em Google Cloud. Pode resolver o problema mais rapidamente através da consola série do que através do método manual.

Para usar os métodos seguintes para resolver o problema do fstab, tem de ativar o acesso à porta série para a sua VM.

Opção 1: use a consola série para iniciar sessão na VM no modo de emergência

  1. Inicie sessão na consola série da VM a partir da Google Cloud consola. Consola de série

  2. No modo de emergência atual, introduza a palavra-passe de raiz para aceder à sua VM.

  3. Use o seu editor de texto favorito para abrir o ficheiro fstab. Faça as alterações necessárias e guarde-as no ficheiro fstab. No exemplo seguinte, é usado o editor vi.

    vi /etc/fstab

    Ficheiro fstab

    No exemplo anterior, o dispositivo para /distribution está desanexado da VM. Comente a linha que faz referência ao sistema de ficheiros ou remova a entrada fstab para o ponto de montagem /distribution.

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

  4. Guarde o ficheiro e saia do editor. Se estiver a usar o vi editor, use ESC + :wq! para guardar e sair do editor.

  5. Retome o processo de arranque introduzindo reboot no comando.

  6. Depois de corrigir o problema com êxito, o processo de arranque da VM deve ser concluído e o pedido de início de sessão é apresentado na consola série.

  7. Confirme que consegue iniciar sessão novamente na VM através de SSH.

Opção 2: usar o modo de utilizador único na consola série

Esta opção pode ser usada se a palavra-passe de raiz não estiver definida.

Pré-requisito: o parâmetro GRUB_TIMEOUT no ficheiro de configuração do GRUB tem de ser definido como um valor diferente de zero. Normalmente, este ficheiro encontra-se em /etc/default/grub, mas, em algumas distribuições anteriores, pode estar localizado num diretório não padrão.

  1. Aceda à página de instâncias de VM na Google Cloud consola. Aceder às instâncias de VM

  2. Inicie sessão na consola série da máquina virtual a partir da Google Cloud consola. Consola de série2

  3. Clique em REDEFINIR para a máquina virtual na Google Cloud Console.

    Reponha o ficheiro

  4. Na janela da consola série, interrompa o processo de arranque clicando na tecla de seta para pausar no ecrã ou menu do GRUB.

  5. Na lista de kernels no ecrã do carregador de arranque do GRUB, escolha o kernel e prima e no teclado.

    ficheiro do carregador de arranque

  6. Adicione o parâmetro rd.break no final da linha do kernel e prima ctrl+x. Isto ajuda a arrancar a VM no modo de utilizador único.

    Menu do carregador de arranque

  7. Monte o sistema de ficheiros raiz no modo de leitura/escrita.

  8. Analise, faça as alterações necessárias e guarde o ficheiro fstab. Use man fstab para ver mais detalhes sobre a configuração e a sintaxe. Use o seu editor de texto favorito para abrir o ficheiro fstab. No exemplo abaixo, é usado o editor vi.

    vi /etc/fstab

    Fstab file2

    Neste exemplo, o dispositivo para /distribution está separado da VM. Por isso, comente a linha ou remova a entrada fstab para o ponto de montagem /distribution.

  9. Guarde o ficheiro e saia do editor. Se estiver a usar o editor vi, use ESC + :wq! para guardar e sair do fstab.

  10. Retome o processo de arranque introduzindo reboot no comando.

  11. Depois de corrigir o problema com êxito, o processo de arranque da VM deve ser concluído e deve ver o pedido de início de sessão na consola série.

  12. Confirme se consegue iniciar sessão na VM através de SSH.

Opção 3: resgate a VM

Pode usar esta opção se a palavra-passe de raiz não estiver definida ou se não conseguir usar o modo de utilizador único.

Para mais informações, consulte o artigo Recupere uma VM inacessível.