Essa é a segunda vez que acontece comigo. Precisei reinstalar o VMWare Server no meu PC principal para fazer experiências e reiniciar o PC passou a levar 2:35 contra os habituais 1:52
nota: Eu cronometro do momento de escolher "Windows XP" no menu de boot até o último ícone aparecer na barra de tarefas.
Eu já havia encontrado e aplicado a solução antes, mas perdi o arquivo batch e tive que procurar de novo. Vou registrar aqui para facilitar a minha vida e a de outros :)
Eu fiz alguns ajustes na solução proposta. Minha implementação é dirigida a quem, como eu, só usa o VMware esporádicamente. Quem precisa dele todo instante pode preferir fazer de outra maneira.
Execute "services.msc"
Localize e configure para início manual estes serviços:
- "VMWare Authorization Service"
- "VMWare DHCP Service"
- "VMWare NAT Service"
- "VMWare Registration Service"
- "VMWare Virtual Mount Manager Extended"
Crie um arquivo "ativa-vmware.bat" com o seguinte conteúdo:
net start "VMWare DHCP Service"net start "VMWare NAT Service"net start "VMWare Virtual Mount Manager Extended":loopping.exe -n 3 localhost >nulnet start|find "VMware"if errorlevel 1 goto loopnet start "vmware authorization service" & net start "vmware registration service"pauseE toda vez que você precisar do VMware basta excutar "ativa-vmware.bat" antes de abrir o console (só é necessário uma vez por seção do Windows).
Editado: "seção"?! Eu escrevi mesmo isso? É "sessão" gente!
Na verdade, o causador do atraso é o "registration service", que por sua vez depende do "authorization service". Eu desativei os outros serviços apenas por não serem realmente necessários no meu dia-a-dia e não porque estejam relacionados diretamente com o atraso, mas você vai notar ao rodar o batch que de qualquer forma eles levam uns pouco segundos para serem iniciados.
Como funciona o batchVocê não precisa ler isto aqui.
Inicia três serviços:
net start "VMWare DHCP Service"
net start "VMWare NAT Service"
net start "VMWare Virtual Mount Manager Extended"
O comando ping é usado aqui como um truque para dar um retardo, já que os arquivos batch do Windows não tem um comando sleep() ou wait(). Poderia ser qualquer coisa que atrasasse um pouco a execução dando tempo para os serviços estarem prontos.
:loop
ping.exe -n 3 localhost >nul
net start|find "VMware"
if errorlevel 1 goto loop
A idéia geral é:
- Dá uma pausa
- Exibe uma lista dos serviços e procura na lista a palavra VMWARE
- Se a palavra for encontrada, prossegue. Se não, continua esperando.
Eu não creio que esse trecho seja realmente necessário do jeito que reescrevi o batch. Mas como foi sugerido por alguém que certamente é muito mais experiente que eu em VMWARE, eu o mantive. Até mesmo porque não faz mal nenhum.
Agora, os dois serviços mais problemáticos são iniciados
:
net start "vmware authorization service" & net start "vmware registration service"
pause
O "&" é apenas uma forma de assegurar que o "registration service" só inicie depois que o "authorization service" tiver iniciado. A pausa final serve apenas para que você possa enxergar o resultado do processo.
Se você esquecer de ativar os serviços antes de abrir o console, vai aparecer uma janela de logon assim:

Quando o normal é este:

A janela de logon bem que poderia, ao notar que os serviços não estão rodando na máquina, apresentar um link do tipo "Onde está a opção Local host?" levando para uma explicação. Ou mesmo explicar na própria janela.