Solucionar problemas de inicialização da VM do Linux devido a erros fstab
Aplica-se a: ✔️ VMs linux
Observação
O CentOS mencionado neste artigo é uma distribuição Linux e chegará ao fim da vida útil (EOL). Considere seu uso e planeje adequadamente. Para obter mais informações, consulte Diretrizes de fim da vida útil do CentOS.
A tabela do sistema de arquivos do Linux, fstab, é uma tabela de configuração projetada para configurar regras em que sistemas de arquivos específicos são detectados e montados de maneira ordenada durante o processo de inicialização do sistema.
Este artigo discute várias condições em que uma configuração incorreta do fstab pode levar a problemas de inicialização e fornece diretrizes de solução de problemas.
Aqui estão alguns motivos comuns que podem levar a problemas de inicialização da máquina virtual (VM) devido à configuração incorreta do fstab:
- O nome do sistema de arquivos tradicional é usado em vez do identificador exclusivo universal (UUID) do sistema de arquivos.
- Um UUID incorreto é usado.
- Existe uma entrada para um dispositivo desconectado sem a
nofail
opção na configuração do fstab. - Entrada incorreta na configuração do fstab.
Identificar problemas do fstab
Verifique o estado de inicialização atual da VM no log serial na folha Diagnóstico de inicialização no portal do Azure. A VM estará em um modo de emergência. Você vê entradas de log semelhantes ao exemplo a seguir, levando ao estado do Modo de emergência:
[K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device.
[[1;33mDEPEND[0m] Dependency failed for /data.
[[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)
Observação
/data
é um exemplo de ponto de montagem usado. A falha de dependência para o ponto de montagem do sistema de arquivos será diferente com base nos nomes usados.
Solução
Há três maneiras de resolver o erro:
- Reparar a VM online
- Reparar a VM offline
Reparar a VM online
Usar o console serial
- Conecte-se ao console serial da VM no portal do Azure.
- O acesso manual ao modo de usuário único é necessário para reconfigurar o fstab. As etapas podem variar de acordo com o tipo de sistema operacional Linux usado e o acesso à conta root. Siga a documentação do modo de usuário único para acessar o modo de usuário único para cada imagem de parceiro do Linux com suporte.
Etapas de solução de problemas do fstab
Depois que a VM for inicializada no modo de usuário único. Use seu editor de texto favorito para abrir o arquivo fstab.
vi /etc/fstab
Revisar os sistemas de arquivos listados em
/etc/fstab
. Cada linha no arquivo fstab indica um sistema de arquivos que é montado quando a VM é iniciada. Para obter mais informações sobre a sintaxe do arquivo fstab, execute o comandoman fstab
. Para solucionar uma falha de inicialização, revise a entrada do sistema de arquivos que falhou ao montar. É uma boa prática revisar cada linha para garantir que ela esteja correta tanto na estrutura quanto no conteúdo. Alguns pontos a serem considerados para administrar corretamente um arquivo fstab são os seguintes:Os campos em cada linha são separados por tabulações ou espaços. As linhas em branco são ignoradas. As linhas que têm um sinal de número (#) como primeiro caractere são comentários. As linhas comentadas podem permanecer no arquivo fstab, mas não serão processadas. Recomendamos que você comente as linhas fstab sobre as quais não tem certeza, em vez de remover as linhas.
Monte os discos de dados em VMs do Azure usando o UUID da partição do sistema de arquivos. Para determinar o UUID do sistema de arquivos, execute o
blkid
comando. Para obter mais informações sobre a sintaxe, execute o comandoman blkid
. Exemplo da entrada UUID no arquivo fstab:UUID=<UUID number here> /data xfs defaults,nofail 0 0
Use a opção
nofail
nas entradas do sistema de arquivos (discos de dados) para permitir que a inicialização continue mesmo após a ocorrência de erros nas partições para as entradas correspondentes. A opçãonofail
ajuda a garantir que a VM seja iniciada mesmo se o sistema de arquivos estiver corrompido ou se não existir na inicialização.
Salve as alterações no arquivo fstab.
Use
mount -a
como prática recomendada após fazer alterações nas entradas do fstab. Isso executará novamente a configuração do fstab e notificará os usuários sobre qualquer sintaxe existente ou erros de entrada.Depois que a sintaxe e as entradas forem verificadas, reinicialize a VM usando o seguinte comando:
reboot -f
Se o comentário ou correção das entradas for bem-sucedido, o sistema deverá acessar um prompt bash no portal. Verifique se você pode se conectar à VM.
Observação
Você também pode usar o
ctrl+x
comando que também reinicializará a VM.
Repare a VM off-line
Se o acesso ao console serial da VM não estiver disponível, uma solução alternativa será reparar a VM offline. Há duas maneiras de adotar uma abordagem off-line:
Use o Reparo Automático do Azure Linux (ALAR)
Os scripts do ALAR (Reparo Automático do Linux no Azure) fazem parte da extensão de reparo de VM descrita em Usar o ALAR (Reparo Automático do Linux no Azure) para corrigir uma VM do Linux. O ALAR abrange a automação de vários cenários de reparo, incluindo /etc/fstab
problemas.
Os scripts ALAR usam a extensão repair-button
de reparo para corrigir problemas de fstab especificando --button-command fstab
. Esse parâmetro aciona a recuperação automatizada. Implemente as seguintes etapas para automatizar erros de fstab por meio da abordagem ALAR offline:
az extension add -n vm-repair
az extension update -n vm-repair
az vm repair repair-button --button-command 'fstab' --verbose --resource-group $RGNAME --name $VMNAME
Observação
Substitua o nome $RGTEST
do grupo de recursos e o nome $VMNAME
da VM de acordo.
- O script de VM de reparo, em conjunto com o script ALAR, criará temporariamente um grupo de recursos, uma VM de reparo e uma cópia do disco do sistema operacional da VM afetada. Ele faz backup do arquivo original
/etc/fstab
e o modifica removendo ou comentando entradas do sistema de arquivos de dados que não são necessárias para inicializar o sistema. - Depois que o sistema operacional for iniciado com êxito, revise e edite o
/etc/fstab
arquivo para corrigir quaisquer erros que possam ter impedido uma reinicialização adequada. - Por fim, o
repair-button
script excluirá automaticamente o grupo de recursos que contém a VM de reparo.
Use o método manual
Se as abordagens do console serial e do ALAR não forem possíveis ou falharem, o reparo deverá ser executado manualmente. Siga as etapas aqui para anexar manualmente o disco do SO a uma VM de recuperação e troque o disco do SO de volta para a VM original:
- Anexe o disco do sistema operacional a uma VM de recuperação usando o portal do Azure
- Anexar o disco do sistema operacional a uma VM de recuperação usando a CLI do Azure
Assim que o disco do SO for anexado com sucesso à VM de recuperação, siga as instruções chroot detalhadas para montar e fazer chroot nos sistemas de arquivos do disco do SO anexado. Em seguida, implemente as etapas de solução de problemas do fstab para fazer as alterações apropriadas no arquivo fstab do disco do sistema operacional problemático.
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.