Migrei uma máquina do VMware e ela não inicia: o disco está lá, o caminho até ele não
A falha mais comum depois de uma migração do VMware não é um disco perdido. É um convidado que não reconhece mais a controladora na frente do disco, e a solução continua reversível a cada passo enquanto você mudar uma coisa de cada vez.
AtlasPVE ·
Este verbete responde a
- vmware to proxmox inaccessible boot device
- proxmox vm importada não inicia
- esxi para proxmox migração falha de boot
- proxmox vm windows migrada tela azul
- proxmox sem dispositivo de boot após importar
A importação terminou, o disco aparece na lista, a máquina começa a subir, e então para com uma mensagem sobre um dispositivo de boot que ela não alcança. O primeiro instinto é achar que algo se perdeu na conversão. Quase sempre não se perdeu nada.
O disco está onde deveria estar. O que mudou foi o caminho até ele.
Por que isso acontece
Uma máquina virtual não conversa com um disco. Ela conversa com uma controladora de disco, e a controladora faz parte do que o hipervisor apresenta a ela. O VMware apresentava um tipo. O Proxmox apresenta outro.
Isso seria inofensivo se o convidado carregasse todo driver de que um dia pudesse precisar. Ele não carrega. Um sistema operacional carrega apenas um conjunto pequeno de drivers antes de ter acesso ao próprio disco, e esse conjunto foi decidido no dia em que foi instalado. Se a controladora na frente do disco não estiver ali, o convidado não vê nada de onde iniciar, e diz isso do único jeito que sabe: não há dispositivo de boot.
Ou seja, o sintoma aponta para o disco e a causa está uma camada à frente.
Duas falhas diferentes que se parecem
São tratadas como um problema só e não são.
Nenhum dispositivo de boot. Muitas vezes é o firmware e não a controladora. Uma máquina criada sob EFI não inicia sob uma BIOS antiga, e o contrário também vale. Nada está errado com o disco; a máquina está sendo iniciada de um jeito para o qual nunca foi instalada.
O boot começa e depois para reclamando do dispositivo de boot. Esse é o caso da controladora. O firmware estava certo, o carregador rodou, e aí o kernel não alcançou o disco que lhe indicaram.
Separar esses dois casos antes de mexer em qualquer coisa salva a tarde inteira, porque os remédios são diferentes e aplicar o errado acrescenta um segundo sintoma em cima do primeiro.
Três perguntas antes de mexer em qualquer coisa
O disco está mesmo anexado à máquina? Olhe a configuração da máquina, não o armazenamento. Um disco importado pode existir no armazenamento e não estar anexado, e essa é uma correção de dois segundos que parece uma catástrofe.
Sob qual firmware essa máquina foi instalada? Se veio de um ambiente EFI, ela precisa de um, e precisa também de um lugar para guardar suas entradas de boot.
O convidado tem o driver da nova controladora? Não "está instalado" e sim "existe dentro daquela imagem de disco". Uma máquina Windows que nunca encontrou uma controladora VirtIO não tem esse driver, e não consegue buscá-lo enquanto não inicia.
O caminho que continua reversível
Há duas abordagens e elas não são igualmente seguras.
Dê ao convidado uma controladora que ele já conhece. Anexe o disco a uma interface que o convidado suporta desde o dia da instalação, inicie normalmente, instale o novo driver de dentro do sistema em execução, desligue, e só então troque a controladora. Cada passo é pequeno e cada um pode ser desfeito.
O truque que torna isso indolor: antes de trocar, anexe um segundo disco minúsculo do novo tipo de controladora. O convidado inicia pelo caminho antigo, vê hardware desconhecido e deixa você instalar o driver com calma. Depois a troca do disco de verdade passa sem história, porque o driver já está lá.
Injetar o driver na imagem de fora. Mais rápido e funciona, mas se não funcionar sobra investigar uma imagem que agora é diferente da que você começou. É a ferramenta certa quando há muitas máquinas e uma receita conhecida. É a errada para a primeira.
⚠️ Mude uma coisa de cada vez. Firmware e controladora juntos é a forma mais comum de transformar um problema solúvel em um problema confuso: a máquina continua sem iniciar e agora existem dois suspeitos.
Convidados Linux: mesma causa, sintoma mais silencioso
Acontece a mesma coisa e se lê diferente. O carregador de boot roda, e depois o sistema fica parado esperando um dispositivo raiz que nunca aparece. O motivo é idêntico: a imagem de boot inicial foi montada sem o driver da nova controladora, porque no hipervisor antigo ele nunca foi necessário.
O remédio tem o mesmo formato. Iniciar por uma imagem de resgate, refazer a imagem de boot inicial incluindo o driver, e só então trocar a controladora.
O que não fazer
Não recrie a máquina para anexar o disco antigo nela. A nova máquina terá a mesma controladora e o mesmo resultado, e agora você tem duas máquinas para acompanhar.
Não apague ainda a máquina de origem. A migração acaba quando a nova subiu, fez trabalho de verdade e foi para o backup. Não quando a cópia termina.
Não se surpreenda depois com a inicialização rápida. Um convidado Windows desligado com a inicialização rápida ativada não desliga por completo, então uma mudança de hardware feita nesse estado encontra um sistema que acha que está retomando e não iniciando.
O que o Atlas faz
O Atlas coloca na mesma tela as duas coisas entre as quais esse problema vive. A visão de hardware da máquina mostra juntos o disco, a controladora à qual ele está anexado e a configuração de firmware, então a pergunta "qual dos dois está errado" se responde olhando em vez de tentando.
A cadeia de recursos também responde diretamente à primeira das três perguntas: o mapa desenha da máquina até o disco físico, então um disco importado mas nunca anexado falta visivelmente na cadeia em vez de se esconder numa lista de armazenamento.
Antes de uma mudança dessas ser aplicada, o Atlas tira um instantâneo, para que o caminho reversível continue reversível mesmo se o convidado reagir mal. Os recursos afetados são listados antes de rodar, e é exatamente isso que torna "uma coisa de cada vez" praticável em vez de apenas recomendável.
Fontes
A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.