Hyper-V: Virtual Machine Bus cannot find enough resources

A few weeks ago my colleague installed Hyper-V onto her laptop and she copied one of her Virtual Machines onto this server. When she booted the server there where some issues with the virtual machine, the main issue was that the vmbus technology was not available. After a bit of troubleshooting I find out where the problem was.

I’ve looked into the device manager and saw that the Virtual Machine bus failed to load.

In the details pane of this device you can see the following error:

The device cannot find enough free resources that it can use. Basically this means that the VMBus cannot load. This is due to the fact that this VM was build on a non Hyper-V platform and therefore using a wrong HAL. The HAL running in the VM must be an APIC HAL. Now with Windows Server 2008 and Vista you can force to detect the correct HAL during the boot process. This is disabled by default but I will show you how you can enable it. First, open the System Configuration tool by running “msconfig”.

Next click onto the “Boot” tab and select the “Advanced Options”.

Click onto “Detect HAL” and close the tool and reboot the server. Once the server is rebooting it will detect the new HAL and install everything that is needed. If you open the device manager again you will see that the VM is now a “ACPI x86-based PC” (you can find this under the computer settings). After the reboot you can uncheck the “Detect HAL” option in msconfig.