The error message “this installer may only be run inside of a virtual machine” appears when you try to remove old virtual machine additions (from Virtual Server 2005/Virtual PC 2004) when running the virtual machine in Hyper-V.
The migration guidelines recommend the removal (but do not mandate it) of the Virtual Machine Additions. But this is probably because later versions of the additions can be removed from inside Hyper-V, earlier versions cannot.
The problem is the existence of this software stops the installation of the Hyper-V Integration Services.
So to remove the Virtual Machine Additions of the Hyper-V guest (that has been previously used in Virtual PC/Server) you need to do the following:
- Shutdown the Hyper-V virtual guest
- Share the folder containing the VHD for this guest
- Install Virtual PC 2007 or later on another computer
- Create a new virtual guest on the Virtual PC, pointing the VHD property to the shared VHD on the network and do not create undo disks.
- Boot the Virtual PC guest and uninstall the Virtual Machine Additions. Any prompts about new hardware should be ignored by pressing the Cancel button.
- The removal process will require a reboot. Once the reboot has completed you can then shutdown the virtual PC.
- Remove the Virtual PC guest, stop sharing the VHD folder and restart the guest in Hyper-V.
- Install the Hyper-V Integration Services.
If the virtual guest is so old as to have a Standard PC HAL installed then attempts to install the Integration Services results in the following error “Setup cannot upgrade the HAL in this virtual machine. Hyper-V integration services can be installed only on virtual machines with an ACPI-compatible HAL. For information about hardware requirements, see the Hyper-V documentation”.
This cannot be fixed and so if you have an old virtual machine that has a Standard PC HAL (from Device Manager > Computer) then do without the integration services or rebuild the guest from scratch.