11 agosto 2020

VMWare, Windows 10, caracteres no-ASCII y la madre que lo parió

 En mi trabajo es muy normal usar máquinas virtuales. Antes utilizaba principalmente VirtualBox, pero ahora nos ha llegado una orden desde la dirección de la compañía de que solo podemos utilizar VMWare. Supongo que estos cambios se deben básicamente a las cuentas que hayan hecho pagando licencias...

Así que me puse a instalar VMWare en mi PC de trabajo, un flamante e impresionante DELL precission con 32 Gb de memoria y micro Xeon con 4 cores a 3 Ghz. Vamos, que no está nada mal.

El sistema operativo es Windows 10 actualizado (ya me cago en algún pariente de Bill Gates cuando me sale algún inesperado reinicio por actualizaciones o tarda demasiado en iniciarse o pararse por las actualizaciones).

Descubrí que no hay manera de instalar la versión 15.5.6 (la última de VMWare). Da igual como se intente, sale momentáneamente el logo de VMWare y finaliza, sin realizar la instalación ni explicaciones de que ha pasado.

Como eso ya era mosqueante fui probando versiones anteriores, hasta que llegué a la versión 15.5.2, esta sí que pude instalarla sin problemas.

Contento con haber perdido solo media mañana, decidí intentar actualizar la instalación usando la opción de "buscar actualizaciones" del propio VMWare. Tras un rato descargando e intentando actualizar sale un pop-up que finaliza la actualización con error:

Install of VMWare Workstation Pro failed. Contact VMWare support or your system administrator

Así, sin más, ni códigos de error, ni explicaciones... Mire en los ficheros de log que deja el VMWare y ni rastro de posibles errores o explicaciones...

Bueno, no había perdido toda la mañana, así que decido trabajar con esa versión y crearme una máquina virtual. Cuando voy a arrancarla aparece otro error diferente:

Could not get vmci driver version. Try reinstall VMWare Workstation

Como soy muy obediente hice lo que me decia el mensaje de error, reinstalé otra vez el VMWare (la versión que me funcionaba) y llegué a los mismos errores.

Así que perdida casi toda la mañana decidí acudir a los foros de VMWare, incluso me registré y estuve buscando, pero ninguna de las soluciones propuestas me ayudó (salvo un "atajo" que encontré para solucionar el problema con el vmci, mira este enlace)

Al final perdí todo el día, probando soluciones que encontré en diversos foros, o ideas locas de algún administrador de sistemas, pero nada, no hay manera de instalar la última versión de VMWare.

Hoy he vuelto a perder toda la mañana con el problema (y probando más ideas de otro administrador de sistemas), hasta que me fijé en los ficheros de log que deja en el directorio temporal (%TEMP%) durante la instalación, en él se puede ver algo como lo siguiente:

2020-08-11T15:22:32.796+02:00| BootStrapper-build-16341506| I2: Util_IsDirectory: Not a directory: C:\Users\MeyerMañoso\AppData\Local\Temp\

¿Como era posible que ese directorio no exista? Si es el directorio temporal por defecto para el usuario MeyerMañoso, y sí que existe...

Y de repente vino la inspiración... seguro que en algún sitio tienen una función (posiblemente relacionada en la creación de ficheros temporales) que están usando métodos muy viejos (los 80's atacan de nuevo) y da errores al acceder a un directorio que tenga un carácter no ASCII en el nombre (como es el caso de la tan española "ñ").

Así que cambié en el sistema las variables de entorno TEMP y TMP para que apuntaran a directorios con nombres 100% ASCII (dejé las dos variables apuntando a C:\temp) y volví a intentarlo.

¡Y funcionó!, despues de dia y medio perdido, he conseguido hacer una instalación con la última versión del VMWare, y las máquinas virtuales que he creado ya no dan el error del vmci.

Como conclusión, a partir de la versión 15.5.3 decidieron usar funciones que seguramente alguien desarrollaría en los años 80 que no soportan los caracteres no ASCII.

Así que lo siguiente ha sido abrir mi blog para contar mi historia, por si ayuda a alguien en una situación similar. (he intentado actualizar las entradas en los forum de VMWare, pero llevan todo el dia sin funcionar....).