Windows 7 Professional upgrade boxI finally (and reluctantly) upgraded my own production machines from Windows XP SP3 to Windows 7 this past month. (What with the new Android phone and the new OS, I feel like a new man!) We also recently upgraded one very small client to Windows 7. I have not yet come across any software or hardware that worked with XP but is completely incompatible with Windows 7. In fact, our client had an OLD 16-bit MS Access based application that ran just fine after I copied over the program files manually and stuck a few DLL’s into the WindowsSystem directory. It made me yearn for those simpler times before installers.

Whenever we do an migration like this, it’s always nice to have the old system available in case something is forgotten.  In the event that we need to do an in-place upgrade, and we don’t have extra hardware standing by I like to use Virtual Machines.  (Note: When I say “in-place upgrade”, I mean a clean re-install of a new OS on the existing hardware.)

So the idea is to:

  1. Convert the OS running on the existing hardware (i.e. XP sp3) to a Virtual Machine (confirm that it is functional and copy to a USB drive or network location)
  2. Install Windows 7 on the existing hardware
  3. Move the VM into the Win 7 environment, run it whenever a missing application or configuration is encountered

Now Microsoft does offer XP Mode based on their free Virtual PC product. However, their Disk2VHD tool to convert physical disks to virtual disks seems pretty basic. It’s not really a full P2V tool. If you don’t mind spending some extra money, there are plenty of good 3rd party apps for P2V such as Acronis Universal Restore.

VMWare is a more robust and mature virtualization platform and their VMware vCenter Converter Standalone product is an excellent free P2V solution. Also, the free VMWare Player actually seems to have more configuration options than Virtual PC. So I chose to use the VMWare products.

Now you may run into Windows Activation issues if using OEM Windows licenses because OEM licenses are not transferable. In this scenario where the VM is running on the OEM licensed hardware there does appear to be a way for VMWare to pass the physical BIOS info into the VM. You can add the following to your .vmx config file:
smbios.reflecthost=”TRUE”

One positive feature of Microsoft virtualization products is the lenient licensing. You can run multiple servers with Windows Virtual Server products and up to 5 VMs on Windows 7 when you have Software Assurance. But I don’t want to get into Microsoft licensing right now, that might be a good topic for another post..