VM POWER ON FAILS WITH ERROR: CPUID.CORESPERSOCKET MUST BE A NUMBER BETWEEN 1 AND 8
Had a strange one after deploying an XP VM from a template today - the VM would not power on and threw the following error:
An error was received from the ESX host while powering on VM [VM name].
cpuid.coresPerSocket must be a number between 1 and 8
Digging around on google the error seemed to be related to over-allocating vCPUs (e.g. assigning 8 vCPUs on a VM with 4 physical CPU cores). This was a single vCPU machine on a 12 processor host, so not likely to be that! It did give me the idea that maybe the VMX had an error, so I edited the VM hardware and added an extra CPU and saved the config. I then edited it back to a single CPU and powered on the machine - it worked!
Examining the vmx showed that the coresPerSocket was set to zero which is incorrect:
cpuid.coresPerSocket = "0"
And after the change, the numvcpus setting was added and coresPerSocket updated:
cpuid.coresPerSocket = "1" numvcpus = "1"
Fortunately, it’s a simple fix and once I’d updated the template, not something that will bother me again!