However, it turns out the vmx file could really be "corrupted". In vmx, the first line is
.encoding = "windows-1252"After change it to be
.encoding = "UTF-8"The VM is no longer considered to be invalid.
Then after I changed the "numvcpus" from 2 to 1, the VM is able to run on my VMware server, which unfortunately only has one single core CPU.
But interestingly, the original VM can run on a VMware server 2 on Linux.
I also need to change VM's network to be NAT instead of Bridged, and restart VM, to enable networking.
The guideline is that the virtual hardware for a particular Guest OS, such as the number of CPUs and the network type, has to be compatible with the hardware spec of the VMware server installation. For instance, you can not run a 2-CPU VM on a VMware server supporting only one CPU; and if there is no DHCP on the bridged network, then not surprisingly the VM can not acquire an IP if using the bridged network.