A really fun part of my job as Developer Evangelist is coding and figuring out how things work. And of course sometimes that involves installing new pieces of software that doesn't perform as expected. Since a lot of my time is spent with a lot of virtual machines I've been thinking about trying the recently released Microsoft Virtual Server 2005 R2. It's suppose to be a faster virtual environment than Virtual PC 2004 and easier to manage multiple virtual images with. All-in-all I've heard good things about it, so today I decided to give it a whirl.
Installation seemed like a breeze - at first. Towards the end of the install just when I thought I was home free, an ominous error popped up, "Error 1402: Could not open key: HKEY_LOCAL_MACHINE\Software\Classes\Msxml2.DOMDocument.4.0\CLSID. Verify that you have sufficient access to that key, or contact your support personnel.”
To say the least, it felt like an interesting geek detour had surfaced for the day. :)
I proceed to crack open good ol' Regedit and try to open that registry key. Access denied. Tried to delete it. Access denied. Tried to change permissions to Full Control. No luck. It sounded like there was a lock on this key so I reboot into safe mode and tried Regedit again to delete it. Dang it, same thing.
Ended up downloading a command-line tool from the Windows Resource Kit, Subinacl.exe, and put together a .cmd batch file with two lines of script:
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=system=f
After running that batch (still as Administrator), I was able to delete the registry key references. Woohoo :) I ended up ridding all entries containing Msxml2.xx.4.0. Now, MSXML 4.0 needed to be downloaded and reinstalled, which I promptly did, without a hitch.
Almost an hour later, everything started looking up, and I was ready to try my luck again with Virtual Server. Went and started the install package, and voila, it worked! Now I'm running my virtual machine image of Windows Workflow Foundation and the performance is noticeably a whole lot better, with 600MB of RAM allocated for this instance and less than 15% CPU utlization on average just performing standard compile and debug tasks. I was impressed. The web interface and remote control client took a little getting use to; just spent 10 minutes figuring out how to navigate & configure VMs and it really was a breeze to work with after that.
While the first thing I did notice right off the bat was how much faster it was at running VMs, it also solved a thorny problem I was having with my home PC running Virtual PC 2004 SP1: There was a blue screen inside the VM everytime it was shut down, and the resulting memory dump faults the PC's AMD x64 chipset.
Now, everything runs without a hitch on Virtual Server so far. Next I'll probably try loading a couple VMs side-by-side on my laptop and see how things fare. Hopefully everything will run decently on a 2.13GHz Pentium M with 2GB of RAM running on a separate disk spindle.
It was an interesting hour or so, and at the end of which having become rather fond of Virtual Server, I've decided to use it with all my future dev work and customer demos. Maybe you will too.