VMware não inicaliza (workdir problem)
Após um desligamento inesperado, em um VMware ESXi que temos aqui, uma das máquinas não inicializava mais. O erro que mostrava era:
This virtual machine cannot be powered on because its working directory is not valid. Please use the configuration editor to set a valid working directory, and then try again.
Esse erro não permite que a máquina virtual seja iniciada.
A raiz deste problema está na nomenclatura das VMs. Não devem ser usados espaços e caracteres especiais, por exemplo. Nomes curtos também ajudam. Lembre-se que o vSphere Client é só uma interface para configurar um “linux”, e que os datastores são pastas dentro de um sistema de arquivos.
Passos para a solução gráfica:
- Conecte ao host ESX usando o Cliente vSphere e Logue com um usuário adminsitrativo;
- Remova a máquina virtual do inventário (NÃO REMOVA DO DISCO!!!!);
- Clique no host, e vá no datastore browser. Renomeie o(s) diretório(s) que tem os arquivos da VM em questão;
- Edite o arquivo .vmx da máquina e altere a propriedade woringDir. Ponha o novo diretório (após renomear);
- Com o botão direito, clique no arquivo vmx da sua VM, e peça para adicionar no Inventário.
- Inicialize a VM.
Tem uma maneira de fazer isso via shell, que pode ser útil também:
Conecte ao host ESX usando o Cliente vSphere e Logue com um usuário adminsitrativo;Remova a máquina virtual do inventário (NÃO REMOVA DO DISCO!!!!);
- Conecte ao host ESX usando o Cliente vSphere e Logue com um usuário adminsitrativo;
- Remova a máquina virtual do inventário (NÃO REMOVA DO DISCO!!!!);
- ssh root@<host_or_ip>;
- Verifique qual o nome do datastore que tem os arquivos da sua VM. Atente para a possibilidade dos arquivos estarem em mais de uma datastore. Sempre estas pastas estarão (por padrão) no diretório /vmfs/volumes/
- Execute um comando parecido com o de baixo para renomear:
mv “/vmfs/volumes/storage1/<Dir_With_Spaces_And_Specials> ” “/vmfs/volumes/storage1/<Dir_WITHOUT_Spaces_And_Specials>” - Vá ao Cliente vSphere, entre no datastore e localize o arquivo vmx. Com o botão direito, clique em adicionar ao inventário.
Quando for iniciar a VM, vá para a aba console. Nela, na primeira inicialização após esse procedimento, será detectado que mudanças ocorreram. Você pode dizer que foi movida, mas na minha experiência aqui, não funcionou. Não testei quando se diz que a máquina foi copiada. Depois disso, a máquina não inicia novamente, mas por outro motivo:
VMware ESX cannot find the virtual disk “/vmfs/volumes/<seu_arquivo_de_disco_virtual>”. Please verify the path is valid and try again. Cannot open the disk ‘/vmfs/volumes/<seu_arquivo_de_disco_virtual> or one of the snapshot disks it depends on. Reason: The system cannot find the file specified.
Mas este é um problema mais fácil de resolver. Remova os discos virtuais antigos, e recoloque-os localizando os vmdk novamente.
Referências (se a vmware não mudar as urls de tempos em tempos feito a ibm):
- http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1000114
- http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1002929