Have you ever seen the “Unsupported Guest OS” error message below when trying to stand up a Vista VM in Hyper-V?
The error text reads: “An error has occurred: The specified program requires a newer version of Windows.” Huh?…newer than Vista?
Well, it turns out that this is only experienced with Vista RTM…not with an integrated SP1 build of Vista. While it’s becoming less and less likely that you’re working with just the RTM bits for Vista, it can come up for some folks and can be a huge time-sink to resolve.
In short, the fastest way around this problem is simply to use a slipstreamed SP1 build of Vista and you’ll avoid the whole issue. However, if for some reason this isn’t feasible, here’s a brief description of a couple of solutions for this issue.
The main challenge is that there is no network card (NIC) installed in a basic Vista RTM Hyper-V VM (due to the lack of support for the Integration Services/Components). Two approachs to resolving this:
1. Use the Vista SP1 CD / .ISO file and mount it as a CD/DVD for the VM.
2. Shut down the Vista RTM VM, Add a Legacy Network Adapter, reboot, download Vista SP1.
After either option,
- Install SP1
- Install the Hyper-V Integration Services
- Reboot again
You should be fine at this point. If you’ve chosen to install the Legacy Network Adapter, you can safely remove this extraneous hardware at the final reboot if you wish.
The technical reason for this is that Windows Server 2008 and Vista Service Pack 1 (based on the same code base) are the first 2 OSes considered to be “fully enlightened.” This includes both driver enlightenment and kernel enlightenment. What each of these terms refer to is the way in which the Hyper-V hypervisor interacts with the underlying hardware for a given OS. Vista RTM didn’t have the same level of enlightenment support, hence the lack of synthetic device support. There’s a great reference to Hyper-V terminology over on Ben’s blog: http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/25/hyper-v-terminology.aspx