Cannot Power xxxx. host on: Invalid virtual machine configuration.
This error is a nice “catch all” and leads to configuration files corruption, improper snapshotting of VMs and other horror stories.
My case is just one of “administration sloppiness”.. Indeed it’s worth to be mentioned to avoid some body’s else scratch their heads and think being overconfident.
I use to keep currently ISO images of the Operative Systems and applications on local volumes of the ESX hosts. This gives me the ISO online and a pretty damn fast installation when I need it.
This time I created an /iso direcetory on the ESX host.. See already the problem? Then stop reading
I copied my ISO images on the /iso directory and created on the ESX host a soft link in the directory /vmimages, so far so good. But when I mounted the ISO image as the DVD of a new virtual machine I got this error:
Cannot start virtual machine: Invalid Virtual Machine Configuration
Uh!! Processor affinity, VT, corrupted config files: everything you have been experiencing flashes in your mind.
Nothing of that. Checking the VM log file (vmware.log) something catches my attention:
Sep 17 17:11:24.708: vmx| [msg.configrules.validate.failed.accept] Invalid value "/iso/SW_DVD5_Windows_Svr_2008w_SP2_English__x64_DC_EE_SE_X15-41371.ISO" for configuration key "ide1:0.fileName". Value was not accepted by rule "Virtual IDE Devices". Sep 17 17:11:24.709: vmx| [msg.main.rulesfile.failedtopass] Virtual machine not configured according to rules specified in /etc/vmware/configrules.
Oohh!! What a donkey. Indeed, havig a look at /etc/vmware/configrules buys you that:
# Virtual IDE devices can point to VMFS volume, raw device, or virtual
# tools media.
rule "Virtual IDE Devices"
{
vm regex ".*"
# IDE device backend. 2 controllers, 2 devices each
key regex "^ide[0-1]:[0-1]\.fileName$"
# Allow CDROM devices
accept regex_case "^/dev/cdrom[0-9]*$"
accept regex_case "^/dev/hd[a-z]$"
accept regex_case "^/dev/scd[0-9]+$"
# Only allow paths under /vmfs/, /vmimages, and relative paths
accept prefix_case "/vmfs/"
accept prefix_case "/vmimages/"
accept prefix_case "/usr/lib/vmware/isoimages/"
accept !prefix "/"
I remember having read this somewhere and I pleaded guilty in front of the rack.. I will put things straight now:
Edit /etc/fstab, change the entry that points to the offending mount and point the device to /vmimages/iso # mkdir /vmimages/iso #cp -R /iso/* /vmimages/iso/
Here we are. We got it back. I know, I know…

