August 03, 2009

Major Windows 7 gotcha you should know about that may block you from upgrading

OK, so anyone who knows me expects that I stay up on the bleeding edge when it comes to dev tools and operating systems. Yes, I have been using Windows 7 for almost a year now and have been loving it. However, I never ran it on my production dev environment as I felt I did not what to disrupt our software development workflow until Windows 7 was in final release. With it out to RTM now, I felt it was as good as time as any to migrate, especially since we recently released our latest build of our own product and have a bit of time to do this.

So last week I deployed Windows 7 to both of my production dev systems, as well as the primary QA lab workstations. It was the worst thing I could ever have done, halting all major development and test authoring in our office due to a MAJOR gotcha Microsoft failed to let us know about during the beta and RC.

Ready for this....

You cannot run Virtual PC 7 (beta) in Windows 7 WITHOUT hardware virtualization. OK, I can live with that, since the new XP mode (which is an excellent feature) may very well need it. That didn't concern me. It was my fall back that failed to work that blew my mind...

You cannot run Virtual PC 2007 in Windows 7, as they have a hard block preventing it from being installed on Windows 7 due to compatibility issues. So the same machine that I have been using for development using Vista for a few years has now become a glorified browsing brick. I cannot do any of my kernel mode and system level development or debugging as I am not ALLOWED to install Virtual PC 2007 on the same hardware that worked before. *sigh*

What surprised me is that Ben, the Virtual PC Guy at Microsoft blogged that it was possible to run Virtual PC on Windows 7, and in his own words:

While all the integration aspects of Virtual Machine Additions work (mouse integration, shared folders, etc...) there is no performance tuning for Windows 7 at this stage - so for best performance you should use a system with hardware vitalization support.

That sounds to me like it will still work without hardware virtualization. Seems that is not the case.

Since Windows 7 is already to RTM, if this is a block due to Windows, it isn't going to be fixed anytime soon. So hopefully they can do something in the Virtual PC side of the equation, or they are going to disappoint a lot of unknowing developers.

This just became a MAJOR blocking issue for many dev shops that are using Virtual PC for isolated testing.

If this concerns you, then I recommend you download Intel's Processor Identification Utility so you can check to see if your dev environment is capable of running hardware virtualization.

Failing to do so might get you stuck like I did, now having me decide if I want to degrade back to Windows Vista just to get work done. There goes another day to prep my main systems again. *sigh*

UPDATE: Fellow MVP Bill Grant has provided me a solution to my delimma. It appears the issue is because Virtual PC 7 (beta), a built in component for Windows 7 when installed, is causing the blocking issue. By going into "Turn Windows features on or off" and removing Virtual PC support (and effectively removing XP mode support), Virtual PC 2007 can then be installed on machines that do not have hardware virtualization support.

This isn't the most optimal behaviour, but acceptable. Since without VT support in my CPU I can't use XP mode anyways, removing it does not limit WIndows 7 from functioning. I have reported to Microsoft on this odd behaviour since:

  • Virtual PC 7 and XP Mode simply shouldn't be installing if my CPU isn't supported

  • When the Customer Experience dialog pops up there is an option to "Check for Solutions Online". This is a PERFECT time where they could explain to uninstall Virtual PC 7 and XP mode support built into Windows 7 so Virtual PC 2007 will not block. Right now it reports that no solution is available.

So if you do NOT have VT support in your CPU, please uninstall Virtual PC 7 support if you installed it. VPC 2007 will then properly install for you.

Posted by SilverStr at August 3, 2009 04:04 PM | TrackBack

why not use other products like vmware or VirtualBox?

Posted by: eduardo at August 3, 2009 06:10 PM

I'm not sure that Microsoft failed to disclose this - in fact this was explicitly covered in the announcements around Windows XP Mode:

"We recommend that customers use Windows XP Mode on a PC with 2GB of memory. We also recommend an additional 15 GB of additional disk space for Windows XP Mode. In addition, Windows Virtual PC requires a PC with Intel-VT or AMD-V enabled in the CPU, as it takes advantage of the latest advancements in hardware virtualization. "

Disclaimer: I work for Microsoft NZ. However this is not an official Microsoft response.

Posted by: Stu Fox at August 3, 2009 06:37 PM

Virtual PC for Win7 is in beta, so the final may be updated to remove the hardware restriction..

Posted by: Nicholas at August 3, 2009 07:16 PM

Hey Stu,

The issue here I think is the fact that XP Mode SHOULD NOT INSTALL if its not supported. It blocks VPC 2007 from installing, when it IS supported on a non-VT supported CPU.

Until Bill pointed it out to me, I didn't realize that I had to uninstall it as a Windows feature. And now... all is good. VPC 2007 is running fine.

Posted by: Dana Epp at August 3, 2009 07:52 PM


Perhaps. Although I doubt it since their announcement was clear that hardware VT support was needed. I think what we may see is an update to the installer PREVENTING Virtual PC 7 and XP mode from being able to be installed in the first place on non-supported hardware. I have informed Microsoft of the problem, and its now in their hands.

Posted by: Dana Epp at August 3, 2009 07:57 PM

Easier solution:

Go get the Windows XP stuff and one of the downloads is the fully working Virtual PC for Windows 7 and it works just fine on RTM of 7.

I've used it, it's working fine, and all of my VPC images work just great and creating new images work just fine too. This isn't a gotcha.

Posted by: James Hancock at August 4, 2009 06:12 AM

Thanks for the heads up Dana.

Haven't seen any problems here on Win7 but I'm happy running VMWare Workstation 6.5. Needed for my FreeBSD work.

Posted by: Chris Knight at August 4, 2009 08:27 AM

"The new XP mode (which is an excellent feature) may very well need" hardware virtualization, but the VPC *itself* requires the feature (no XP Mode necessary), and I'd like to see an explanation of that. It's a pity that MS is excluding so many people from the new VPC when it's obviously not necessary, based on the competition and their own earlier products.

Meanwhile, if MS wants more people to use VirtualBox, then they can just maintain the status quo.

Posted by: Rick at August 4, 2009 01:07 PM

I have never liked Virtual PC. In general I'm a fan of MS. I develop on Windows with Visual Studio. However, Virtual PC has always been a lot slower than VMware. The new Hyper-V is good step forward but years behind ESX. I run the free VMware server because I install a copy of XP or 2003 from an ISO about 2-3x faster than I can on Virtual PC. I just don't get why nearly all MS developers use Virtual PC when they can get free VMware.. ?

Posted by: Jonathan Miller at August 4, 2009 08:01 PM

Dana, I would like to echo the idea of using virtual box. I find it's the fastest and most stable virtual machine software I have used.

Posted by: Gareth Lewin at August 7, 2009 12:50 AM