Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ Linux VMs
Observação
CentOS mencionado neste artigo é uma distribuição Linux e em breve atingirá seu status de fim de suporte (End Of Life - EOL). Considere seu uso e planeje adequadamente. Para obter mais informações, consulte Diretrizes de fim da vida útil do CentOS.
Resumo
Este artigo oferece soluções para um problema em que uma máquina virtual (VM) Linux no Azure não pode iniciar porque o sistema de arquivos do sistema operacional não está acessível a partir do RAMdisk. A VM pousa no shell de emergência dracut.
Pré-requisitos
Verifique se o console serial está habilitado e funcional na VM do Linux.
Como identificar o problema de inicialização dracut
Para identificar um problema de inicialização de dracut, use o portal Azure para exibir a saída de log do console serial da VM no painel de diagnóstico de inicialização, painel de console serial ou use AZ CLI.
Todas as VMs com o problema de inicialização acabarão no shell de emergência do dracut ou do initramfs e aparecerão no final do log do console serial.
RHEL/CentOS/SLES/Oracle Linux:
[ 201.935612] dracut-initqueue[455]: Warning: dracut-initqueue timeout - starting timeout scripts [ 201.941153] dracut-initqueue[455]: Warning: Could not boot. Starting Setup Virtual Console... [[0;32m OK [0m] Started Setup Virtual Console. Starting Dracut Emergency Shell... Warning: /dev/mapper/rootvg-rootlv does not exist Generating "/run/initramfs/rdsosreport.txt" Entering emergency mode. Exit the shell to continue. Type "journalctl" to view system logs. You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot after mounting them and attach it to a bug report. dracut:/#Ubuntu:
mdadm: No arrays found in config file or automatically done. Gave up waiting for root file system device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/mapper/osencrypt does not exist. Dropping to a shell! BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.4) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs)
Solução de problemas on-line
Dica
Se você tiver um backup recente da VM, restaure a VM do backup para corrigir o problema de inicialização.
O console serial é o método mais rápido para resolver problemas. Ele permite que você corrija o problema diretamente sem precisar apresentar o disco do sistema a uma VM de recuperação. Certifique-se de atender aos pré-requisitos necessários para sua distribuição. Para obter mais informações, consulte Console serial da máquina virtual para Linux.
Identifique se sua VM entra no shell de emergência do dracut.
Tente solucionar o problema usando o console serial Azure.
Observação
Nem todos os problemas podem ser resolvidos usando o console serial Azure.
- Acione o reinício da VM (Hard) pelo console serial.
- Interrompa sua VM no menu GRUB com a tecla ESC .
- Selecione E para modificar a primeira entrada do kernel no menu GRUB.
- Vá para a linha
linux16, e então valide e corrija a configuração incorreta do GRUB da seguinte maneira:- Caminho do dispositivo raiz incorreto no arquivo de configuração do GRUB, UUID incorreto ou nome do volume raiz.
- Caminho do dispositivo de troca incorreto no arquivo de configuração do GRUB.
- Parâmetros duplicados no arquivo de configuração do GRUB.
- Qualquer erro de digitação óbvio.
Depois de modificar manualmente as configurações do GRUB, selecione Ctrl+X para inicializar a VM.
Qualquer modificação feita neste estágio é uma modificação não persistente. Se a VM puder inicializar, resolva esse problema no arquivo de configuração do GRUB ou ele ocorrerá novamente.
Depois que a VM estiver on-line novamente, corrija os problemas de configuração no
/etc/default/grubarquivo de configuração e atualize a configuração do GRUB. Para fazer isso, consulte Reinstalar o GRUB e regenerar o arquivo de configuração do GRUB.Reinicialize a VM para garantir que ela possa ser inicializada sem qualquer intervenção manual.
Solução de problemas off-line
Dica
Se você tiver um backup recente da VM, restaure a VM do backup para corrigir o problema de inicialização.
Caso o Azure console serial não funcione na VM específica ou não seja uma opção em sua assinatura, solucione esse problema usando uma VM de resgate/reparo. Use comandos de reparo vm para criar uma VM de reparo que tenha uma cópia anexada do disco do sistema operacional da VM afetada. Monte a cópia dos sistemas de arquivos do sistema operacional na VM de reparo usando chroot.
Observação
Como alternativa, você pode criar uma VM de resgate manualmente usando o portal Azure. Para obter mais informações, consulte Solucionar problemas de uma VM Linux anexando o disco do SO a uma VM de recuperação usando o portal Azure.
Vá para as seções a seguir para resolver problemas específicos:
- A VM criptografada do ADE falha ao inicializar porque o VFAT está desabilitado.
- Os drivers do Hyper-V estão faltando.
-
Configuração incorreta do GRUB.
- Caminho do dispositivo raiz incorreto no arquivo de configuração do GRUB.
- Caminho do dispositivo de troca incorreto no arquivo de configuração do GRUB.
- Parâmetros duplicados no arquivo de configuração do GRUB.
- Corrupção do sistema de arquivos raiz.
- Problemas com a ativação do LVM.
- A partição raiz está ausente.
- Corrupção de initrd ou initramfs.
Depois que o problema de inicialização relacionado ao dracut/initramfs for resolvido, execute as seguintes ações:
- Saia do chroot.
- Desmonte a cópia dos sistemas de arquivos da VM de resgate/reparo.
- Execute o comando
az vm repair restorepara trocar o disco reparado do sistema operacional pelo disco original do sistema operacional da VM. Para obter mais informações, consulte a Etapa 5 em Recuperar uma VM Linux usando os comandos de reparo da máquina virtual Azure. - Valide se a VM é capaz de inicializar dando uma olhada no console serial Azure ou tentando se conectar à VM.
A VM criptografada do ADE falha ao inicializar porque o VFAT está desabilitado
Para obter mais informações, consulte Falha na inicialização de VMs criptografadas do ADE.
Os controladores do Hyper-V estão ausentes
Se os drivers de Hyper-V incluídos no kernel do Linux de todas as distribuições modernas do Linux estiverem desabilitados, habilite-os novamente e gere novamente a imagem initramfs/initrd. Para obter mais informações, consulte Cenário 3: Outros drivers Hyper-V estão desabilitados.
Se a VM for Red Hat e for migrada de um ambiente local, habilite os drivers de Hyper-V necessários na imagem initramfs. Para obter mais informações, consulte O driver de Hyper-V não pôde ser incluído no disco de RAM inicial ao usar um hipervisor não Hyper-V.
Configuração incorreta do GRUB
O parâmetro rd.break força a VM a inicializar no shell de emergência do dracut. Verifique se esse parâmetro não está codificado no arquivo de configuração do GRUB.
Caminho do dispositivo raiz incorreto no arquivo de configuração do GRUB
Valide se o caminho root=/dev/*** raiz no arquivo de configuração do GRUB está correto. Certifique-se de que o caminho adequado do dispositivo seja usado.
Se você estiver dentro do chroot em uma VM de reparo/resgate:
- Siga a etapa 1 em Solução de problemas offline.
- Valide o
/etc/default/grubarquivo, aGRUB_CMDLINE_LINUXentrada e procure oroot=parâmetro caso ele esteja codificado no arquivo de configuração. - Reinstale o GRUB e gere novamente o arquivo de configuração do GRUB.
Se você estiver no console serial do Azure:
- Siga a etapa 3 em Solução de problemas online.
- Valide a
linux16linha e, em seguida, procure oroot=parâmetro e corrija-o. - Selecione Ctrl+X para inicializar a VM.
- Depois que a VM for inicializada com êxito, modifique o
/etc/default/grubarquivo, corrija orootparâmetro e atualize o arquivo de configuração do GRUB, conforme instruído em Reinstalar o GRUB e regenerar o arquivo de configuração do GRUB.
Durante essa validação, certifique-se do seguinte:
- Em VMs do Ubuntu com criptografia do sistema operacional, verifique se o nome do dispositivo é
/dev/mapper/osencrypt. - Em VMs com LVM (Gerenciador de Volume Lógico) no disco do sistema operacional, o volume raiz é
/dev/mapper/rootvg-rootlv. O mesmo caminho é usado em VMs RHEL com disco do sistema operacional ADE criptografado. - Certifique-se de que nenhum nome de dispositivo na forma de
/dev/sdXseja usado, pois eles mudarão nas reinicializações e não são persistentes no Linux. Para obter mais informações, consulte Detecção de problemas nas alterações dos nomes de dispositivos em VMs Linux. - Se forem usados UUIDs, certifique-se de que o UUID do sistema de arquivos raiz adequado seja usado e que a sintaxe seja
root=UUID=xxx-yyy-zzz.
Caminho do dispositivo de swap incorreto no arquivo de configuração do GRUB
Nesse cenário, uma VM não consegue concluir o processo de inicialização e entra no shell de emergência dracut com um erro semelhante ao seguinte:
[ 188.000765] dracut-initqueue[324]: Warning: /dev/VG/SwapVol does not exist
Starting Dracut Emergency Shell...
Warning: /dev/VG/SwapVol does not exist
O arquivo de configuração do GRUB neste exemplo é definido para carregar um Volume Lógico (LV) como swap com o parâmetro rd.lvm.lv=VG/SwapVol. No entanto, a VM não consegue localizar esse LV durante o processo de inicialização.
É importante observar que o uso de um dispositivo de troca dessa forma em Azure VMs Linux não é recomendado. Para obter mais informações, consulte Criar um arquivo SWAP para uma VM linux Azure.
Para resolver esse problema, localize o caminho rd.lvm.lv=VG/SwapVol de permuta no arquivo de configuração do GRUB (/etc/default/grub) e remova-o. Para fazer isso, utilize um dos métodos seguintes:
Se você estiver dentro do chroot em uma VM de reparo/resgate:
- Siga a etapa 1 em Solução de problemas offline.
- Edite o
/etc/default/grubarquivo, vá para aGRUB_CMDLINE_LINUXentrada, localize ord.lvm.lv=VG/SwapVolparâmetro e remova-o da configuração. - Reinstale o GRUB e gere novamente o arquivo de configuração do GRUB.
Se você estiver no console serial do Azure:
- Siga a etapa 3 em Solução de problemas online.
- Vá para a linha que começa com
linux, localize ord.lvm.lv=VG/SwapVolparâmetro e remova-o. - Selecione Ctrl+X para inicializar a VM.
- Depois que a VM for inicializada com êxito, modifique o
/etc/default/grubarquivo, remova ord.lvm.lv=VG/SwapVolparâmetro e atualize o arquivo de configuração do GRUB, conforme instruído na seção Reinstalar o GRUB e regenerar o arquivo de configuração do GRUB.
Parâmetros duplicados no arquivo de configuração do GRUB
Valide se há parâmetros duplicados no arquivo de configuração do GRUB:
Se você estiver dentro do chroot em uma VM de reparo/resgate:
- Siga a etapa 1 em Solução de problemas offline.
- Valide o
/etc/default/grubarquivo e aGRUB_CMDLINE_LINUXentrada. - Procure parâmetros duplicados e remova-os.
- Atualize o arquivo de configuração do GRUB. Para obter mais informações, consulte Reinstalar o GRUB e regenerar o arquivo de configuração do GRUB.
Se você estiver no console serial do Azure:
- Siga a etapa 3 em Solução de problemas online.
- Valide a
linux16linha, procure parâmetros duplicados e remova-os. - Selecione Ctrl+X para inicializar a VM.
- Depois que a VM for inicializada com êxito, modifique o
/etc/default/grubarquivo adequadamente, corrija os problemas de configuração identificados anteriormente e atualize o arquivo de configuração do GRUB, conforme instruído em Reinstalar o GRUB e regenerar o arquivo de configuração do GRUB.
Corrupção do sistema de arquivos raiz
Quando o sistema de arquivos raiz está corrompido, ele não pode ser montado a partir da imagem initrd/initramfs.
Para corrigir a corrupção do sistema de arquivos raiz, siga as instruções em Solucionar problemas de inicialização da máquina virtual Linux devido a erros do sistema de arquivos - Executar reparo do sistema de arquivos.
Problemas com a ativação do LVM
Alguns problemas podem ocorrer quando você acessa o volume físico (PV), o grupo de volumes (VG) e/ou o volume lógico (LV) do LVM. Eles não podem ser abordados no console serial do Azure. Para resolvê-los, use uma VM de reparo/resgate.
Siga a etapa 1 em Solução de problemas offline.
Para identificar os problemas, execute os comandos a seguir e dê uma olhada nas saídas do comando.
Identifique qual dispositivo corresponde ao disco do sistema operacional e verifique se ele é detectado como um PV:
lsblk pvsVerifique se o
rootvgVG é detectado:vgsValide se o LV é detectado:
lvs
Solucione os seguintes erros comuns de LVM que causam problemas com o acesso ao volume raiz:
PV desconhecido quando o VG rootvg tem apenas um único PV (esta é a configuração padrão do Azure)
A partição que contém o PV é excluída, redimensionada ou criada incorretamente. Para resolver esse problema, consulte A partição raiz está ausente.
PV desconhecido quando o rootvg VG é modificado e dividido em mais de um disco
Ter 2 PVs no VG rootvg não é uma configuração recomendada. Nesse cenário, o disco de dados pode ser desanexado da máquina virtual e os volumes lógicos rootvg não estão mais acessíveis. Para resolver esse problema, reconecte o disco original à VM e reinicie-o.
Se o PV for irrecuperável, execute uma restauração a partir do backup.
A partição raiz está ausente
O sistema de arquivos raiz pode estar inacessível devido a alguns problemas que ocorrem no nível da partição durante as operações de redimensionamento de partição ou outros.
Nesse cenário, se você documentou o layout da tabela de partição original, com os setores inicial e final exatos para cada uma das partições originais (e nenhuma modificação adicional é feita no sistema, como a criação de novos sistemas de arquivos), recrie as partições usando o mesmo layout original. Você pode fazer isso com ferramentas como fdisk (para tabelas de partição MBR) ou gdisk (para tabelas de partição GPT) para obter acesso ao sistema de arquivos inacessível. Siga esta operação de recuperação a partir de uma VM de conserto/resgate. Para obter mais informações, consulte a seção Solução de problemas offline.
Se essa abordagem não funcionar, recomendamos executar uma restauração do backup.
Corrupção Initrd ou initramfs
A imagem initrd/initramfs tem algum nível de corrupção que faz com que a montagem do volume raiz e o início do processo de inicialização do sistema operacional falhem.
Para resolver esse problema, siga estas etapas de dentro do chroot em uma VM de reparo/resgate:
- Siga a etapa 1 em Solução de problemas offline.
- Regenerar initramfs perdidos manualmente.
- Reinicie a VM para confirmar se ela pode inicializar.
Próximas etapas
Caso o erro de inicialização específico não seja um problema de dracut ou initramfs, consulte Solução de problemas de erros de inicialização de Máquinas Virtuais Linux no Azure para obter mais opções de solução de problemas.