After rebuilding several of my Hyper-V machines on a new machine I remembered what a pain it was to configure networking on them. For some reason, Hyper-V and wireless network adapters just don’t get along together.
Steve Sinofsky has written the definitive post on this, but he leaves out a key detail, and so does everyone else who parrots posts like that. Not even the Virtual PC Guy had any direction that proved to solve my problems.
Fortunately a guy in Australia named Simon Waight had the solution, and I’m posting it here for the next time I forget this important little detail.
There are a couple of standard approaches to make wireless networking work with Hyper-V. Ben Armstrong, the Virtual PC guy, advocates using Internet Connection Sharing, while Sinofsky advised using an External Switch bound to a wireless adapter, which creates a network bridge. I liked the external Switch approach because it seemed simpler and more flexible, but Sinofsky’s advice just didn’t work.
The solution, as told by Waight: Right-click the Network Bridge in the adapter settings, and in the Properties window, under ‘The connection uses the following items’, check every checkbox, and click OK. After some churning both the host and client networking is back online.
Recently I upgraded to the Windows 8 RTM build for my main work laptop, and began working with Hyper-V, which is available on a client OS for the first time with Windows 8. Since I use virtualization to do SharePoint development every day, I was eager to see what Hyper-V could do. So far, I am impressed. It performs well and stays out of my way when I’m not using it.
However, my project team at work is heavily invested in VirtualBox, and rather than try to make all their updates to my new VM, it makes more sense to develop on the same system as the rest of the team. The challenge is that VirtualBox and Hyper-V cannot co-exist on the same machine. Only one hypervisor can run at a time, and since Hyper-V runs all the time, while VirtualBox only runs when it is launched, VirtualBox is the loser in this scenario.
The workaround (there’s always a workaround, isn’t there?) is to disable Hyper-V when you want to run VirtualBox. I found a few different ways on the web to accomplish this, including altering the registry, and running a command. But the only one I found that worked involved changing the boot configuration using bcdedit.
If you run bcdedit with no arguments, you should see a property called hypervisorlaunchtype. This will be set to off or auto.
To disable Hyper-V in order to use VirtualBox, open a command prompt as administrator and run the command:
bcdedit /set hypervisorlaunchtype off
You’ll need to reboot, but then you’ll be all set to run VirtualBox. To turn Hyper-V back on, run:
bcdedit /set hypervisorlaunchtype auto
and then reboot.