Microsoft Virtual PC
Drewslair.com Software Review

Introduction

There's an old cartoon joke where a character is being chased and comes up to a wall blocking his way.  So our hero pulls out a paintbrush, paints a hole in the wall and runs through to safety.  The villain, of course, tries to follow and ends up seeing stars after crashing into the solid wall.  The virtual escape works like a charm for the good guy while keeping the attacker out.

I thought of the cartoon when working with Microsoft Virtual PC over the past couple of weeks.  With this software, which is now free from Microsoft, you can create an entirely new session on your PC that is isolated from the rest of the system and functions just like a separate computer.  You create the session, allocate memory and resources and then install the operating system of your choice.  Officially supported systems include the various flavors of Windows, DOS and OS/2.  All of the information for the session exists within a virtual hard drive file that the program creates and the session can be displayed either as a normal window or in full-screen mode. 

Some potential uses for this software include:

A couple months ago, I downloaded a 45-day trial for the software and posted some notes elsewhere on the site.  The trial ended earlier this month, just after the software proved invaluable in helping me solve a bug in one of my programs that was reported by a visitor to the site.  I decided I didn't want to be without it anymore and found it on Amazon for a discount.

What reminded me of the cartoon was how perfectly this software mimics a real PC with all its capabilities even while safely isolated from the host operating system in its own session viewer.  Setting up a new virtual computer was identical to installing a new operating system with accompanying updates and software.  When the OS loads in the virtual session, it behaves just as it would on the host PC, even running system utilities such as defragmentation on the contents of the virtual drive. Running the software in full-screen mode, I could forget that I'm in a session until I try to shut the computer down and end up returning to the host machine.

Virtual PC offers an easy to use console for your virtual machines as well as a system tray menu for quick access.Virtual PC installs easily, taking it's place under the Programs menu.  Starting the program displays the console screen that shows the options for any existing virtual machines with an accompanying icon in the system tray that provides quick access to machines and options.  (Click the image to the left or any of the images on this page for a full-size view.)

Out of the Box

My first thought when setting up new virtual machines was, of course, Microsoft Access.  I have three versions of the software and might want to work with any of them.  The problem is that multiple versions of Access on the same machine must be installed in the order the versions were released and even then, they don't always play well together.  The last time I re-imaged my machine, I decided I'd avoid the hassle and just install Access 2002 for now, leaving the previous two until I definitely needed them.

A virtual machine quickly solves this problem.  First I decided to create one with a basic Windows 2000 installation on it with all current updates, anti-virus and firewall software and nothing else.  The anti-virus and firewall are necessary as the virtual machines easily detect and use broadband connections.  (One person I talked to even suggested that Virtual PC could be used solely for the purpose of isolating programs such as Internet Explorer from the rest of the computer system.)

The Virtual Machine Wizard will recommend how much RAM to allocate to the session and then lets you decide.Virtual PC includes a simple wizard for creating new machines.  It guides the user through choosing a location for the machine and virtual hard drive file (which defaults to the My Documents folder), specifying the operating system to be used and allocating RAM to the machine.  For Windows 2000, it recommends 128 megabytes of RAM.  Personally, I'm not running a Windows 2000 installation with less than 256 MB if I can help it.  Shortly after I downloaded the trial version, I decided it was an excellent time to upgrade my system's memory from 256 to 512 MB so I could allocate 256 MB to the virtual session and still leave the same amount for the host to work with.

Each virtual machine can connect to up to three virtual hard drive.  Each hard drive file can expand to hold up to 16 GB of information.The virtual machine settings are stored in a small file in XML format.  These settings include the location of the virtual hard drive file(s).  While the virtual hard drives have a capacity of 16 gigabytes each, the files that hold them start out small and expand as information is added.  The virtual hard drive files can hold up to 16 GB of data.  They don't appear to use their own compression but do compress well when ZIP'ed.Each virtual machine can access up to three of these  "drives". Given the compression I was able to get on one of these with WinZIP, it doesn't appear that much, if any, compression is used within the files.  With hard drive space far cheaper these days, this isn't as much of a problem as it once would have been.  Still, it's something to keep an eye on when creating new machines.  Fortunately, DVD burners and external drives are cheaper these days, too.

One of the features I like best about the software is the Undo Disks feature.  When this is activated for a virtual machine, all changes made during a session are stored on a temporary disk instead of the virtual hard drive itself.  When shutting down a virtual machine, the program gives the user the option of saving changes that have been made or deleting them.When the session is shutdown, the program prompts the user with options of committing the changes by merging them with the main file, saving them in the temporary file or deleting them.  This is great for when I just need to test something out quickly and I can see it saving me a lot of time that I won't have to spend restoring virtual machines to their original state.  Changes can be saved indefinitely in the temporary file until the user decides to save them permanently or delete them.

Since the virtual hard drive is blank when first created, a boot disk is needed to start the new machine or that old familiar text message about a missing boot disk is displayed.  It will default to the floppy if there is one but will also boot from the CD if instructed from the virtual machine's BIOS which, just like on a regular computer, is accessed by pressing DEL when starting the virtual machine.  After that, it's just a matter of installing the OS and whatever software is needed in the virtual session.  I installed Windows and downloaded all of the required updates from Microsoft and Norton (for the security software).  The virtual machine rebooted just as a normal machine would after installing the larger updates such as Windows 2000 SP4 and the .NET framework.  After backing up the machine files to a DVD, I created two more machines from it with separate versions of Access.  Now, when I need to run Access 97 or Access 2000, it's just a matter of running the right virtual machine and I'm good to go.

Ghost in the Machine

A couple of days later, I had another thought; how would these virtual machines stand up to being re-imaged?  I use Norton Ghost to re-image my machine at least once a year and I have a couple of images setup with the basic software configuration I like to start out with.  It's a lot quicker than reformatting and reinstalling everything from scratch.  From what I'd seen, throwing an image on a virtual machine should be just as easy as on the host machine but I wanted to try it out just for fun.

I was able to restore a Ghost image to a new virtual machine as easily as I would on the host machine.I used the Norton Ghost Boot Wizard to create a boot disk that would work with my DVD drive and inserted the DVD with the image.  I then created a new virtual machine with the appropriate settings and booted from the floppy I'd just made.  Sure enough, it loaded the Ghost DOS program with no problem and when I told it to restore the image from the DVD, it went through all the standard steps.  After it was done, it rebooted and loaded Windows on the virtual machine with the configuration it had found in the image.  Now, I was really impressed.

Virtual Machine Additions

An extra set of features is available through the Virtual Machine Additions software which installs on individual virtual machines that are running Windows.  This add-on is  unique in its installation as it's featured as an application on the virtual machine.  When the add-on is installed, the session attaches a CD image containing the installation program to whatever CD drive it's accessing and then runs the installation program.  The add-on is included in the guest operating system's list of installed software and can be uninstalled if needed in the same way that any other application would be.

Virtual Machine Additions is installed on the guest operating system to provide enhancements to the capabilities of virtual machines running Windows.'Additions' includes integrated mouse support.  Without the add-on, the mouse is either active on the host machine or contained within the virtual machine window.  Once you're working within the virtual environment, you have to hit the right ALT key to move the mouse outside of it.  'Additions' removes this restriction.  The add-on also synchronizes the system time between the host and virtual machines. and provides better video handling with flexible screen resolutions.  Once 'Additions' is installed, the user can resize the session window as needed and the virtual machine's resolution will change to match it.

Perhaps the handiest feature of the add-on is that it allows for file transfer between the host and the guest operating system by drag and drop or by cutting and pasting through a shared clipboard.  In the machine settings, various folders on the host can also be shared with the virtual session to allow for easy transfer.  While these features are very useful, they should also be used with care if one of the intended uses of the software is to shield the host system from potentially dangerous programs.

I've also seen a noticeable improvement in virtual machine performance after installing the Additions package.  Even after upgrading the memory and changing the console settings to give the virtual sessions priority, the speed of my Windows 2000 virtual machines was a bit sluggish.  After installing 'Additions', they run just as fast as the host.

What's Missing

There are a couple of limitations I've found with Virtual PC at this point.  Hopefully, Microsoft will address these in future versions.

Virtual PC for Windows does not currently support USB devices. From a search of the Microsoft site, it looks like the version for the Mac does support them but for some reason, it was left out of the Windows edition.  It's a rather glaring omission at this point.  I was able to set my external USB hard drive up as a shared folder and transfer files, so that workaround exists.  I haven't tried to figure out a way to print from a virtual machine to my USB printer, though.

If you have more than one CD or DVD drive on the system, Virtual PC detects which contains a disk and lets you quickly switch betwwen them.Other than the missing USB support, the only thing I could comment on is the fact that only one CD or DVD drive can be used at a time with Virtual PC.  The software will quickly switch between multiple drives on the host system and I suppose the shared folders would again come in handy if I ever needed to copy from one to the other so I'm not as concerned about this one.

One quirk I did find in the interface is that the options relating to Virtual Machine Additions features, such as the shared folders, can only be set when the virtual session is running.  Otherwise, the option screen doesn't seem to recognize that the add-on is installed on a machine that has been shutdown.

The Fun Continues ...

I just keep finding more reasons to use Virtual PC.  Here are a few things I've been able to use the virtual machines for in the past couple of weeks:

Even though it's not officially supported, I'm looking forward to trying out a couple versions of Linux on virtual machines.

Conclusion

When I review something here, it's because I really like it or at least think that it could be useful to a lot of people.  Microsoft Virtual PC meets both of these criteria.  After all the years that I've worked with computers and all the advances I've seen, it's a good feeling to still be amazed by new ideas and products like this one.  This is a product that, despite its appearance as a technician's tool, is simple to use and will appeal to a wide range of people. 

Reader Response

Richard Thorp (Manchester, UK) wrote to me about creating a network boot disk that will work with Ghost and Virtual PC. 

"I work in a small IT department and have been using Virtual Server and Virtual PC for the convenience of setting up test environments to learn Windows 2003 and practice migrations. Having used Ghost many years ago, I was curious to see how this would help. I have done some "physical to virtual" conversions using Microsoft ADS and the Microsoft Virtual Server Migration Toolkit - but this isn't the most straight forward of procedures. After installing Ghost 10.0, I thought I'd made a mistake - it looked to be more like a Windows archive/backup utility, than the "clone program" I'd used years ago. A bit of digging and I was relieved to find the DOS program was still there. Both Virtual PC and Virtual Server use the "DEC PCI Fast Ethernet DECchip 21140" chipset "virtual driver". Some internet searching and incorrect downloads later, I found a DOS driver ...  essentially I was looking to create a DOS boot disk with network support. I have .ISO images for NT4 and SP6, so can install NT on a Virtual PC in around 20 minutes, which can then be cloned, and re-used (and scrapped later!) With NT, Ghost 10.0, using the Boot Disk creation wizard, with my new NIC driver, I created a boot disk on the "virtual floppy" image I'd connected to the A: drive. I have copied the DOS ghost.exe program to another floppy ISO image - try "MagicISO" to create these and .ISO images from your favorite CD's and installs. I can now boot my VPC on the ghostboot.iso image, connect to our network and map drive letters on our servers, and using the second floppy image, run the DOS version of Ghost. I've cloned a NT4 VPC to a .GHO image on a server, then brought it back onto a clean HDD on a blank VPC - it booted just fine.

"(The DOS driver) needs to be loaded into the "make boot disk wizard" of Ghost - I called mine "VPC DC21X4" so it was obvious, amongst the long list of other drivers."

(Here is an Intel link where you can download the drivers that Richard used to create the boot disk.  Click here for more information from the microsoft.public.virtualpc forum.)

For More Information ...

Microsoft Virtual PC - Visit the product homepage.  The site includes a full evaluation guide for the software and a link to the Virtual PC discussion group.

Virtual PC Guy's Weblog - Ben Armstrong is the Program Manager for the Core Virtualization team at Microsoft and keeps this blog on MSDN featuring information on the various aspects of Virtual PC.

Wikipedia has an article discussing some of the more technical aspects of the software including information for the Macintosh version and featuring additional links.

Virtualization: From the Desktop to the Enterprise
by Chris Wolf
Virtualization For Dummies (For Dummies (Computer/Tech))
by Bernard Golden

Additional Screenshots

(Click on any screenshot for a full-size view.)

The Virtual PC console shows all of the active and inactive machines.  Machines can be added and removed from this console as needed without deleting the machines themselves.  It's a nice touch that the console shows a miniature live view of operations on active machines.

The New Virtual Machine Wizard guides the user through a few simple steps for creating a new machine, even offering a set of default settings.  Memory can be allocated to a machine here and can be changed later in the machine settings panel.  The program will recommend an amount of memory based on the operating system although I found its recommendation of 128 MB for Windows 2000 a bit stingy.

The virtual machines boot just like real machines, even offering a BIOS setup program that includes passwords and boot options.

After restoring the Ghost image to a virtual machine, the new session behaved exactly as I would expect, even doing a hardware scan on the initial startup of Windows.  After it found the video card, as shown here, it found the broadband connection and alerted me that it had the same network name as the host machine.

After booting a new machine from floppies or an installation disk, it runs through the OS setup just as expected.

The virtual hard drive looks like a normal hard drive to the OS setup program, showing a 16 GB capacity ready for formatting.

After formatting the virtual hard drive file to NTFS, the OS setup did the standard hardware scan. The bottom screenshot on the left shows the hardware manager setup for one of the virtual machines.  The virtual session accesses the processor of the host system while relying on standardized drivers for other functions such as sound and network access.

The program has plenty of general and machine-specific options that can be set by the user.  The top picture on the left shows the hard drive setting for a virtual machine.  Up to three 16 GB hard drive files at different locations can be attached to each machine.

There are some flexible performance options as well.  The bottom picture shows the General Options screen where priority can be given to either the host machine or active virtual machines.  The interface is well designed with some very helpful explanations of the different options.

Virtual Machine Additions is a set of enhancements to the virtual session that improves mouse integration between the host and virtual machine, enables shared folders, improves video handling and resolution and allows files to be be transferred between the host and guest sessions by drag and drop or through the clipboard.  It can be installed or removed as needed on individual virtual machines running Windows.

 

Disclaimer:   Information or materials offered on this site, technical or otherwise, are offered free of any guarantee of fitness for a particular purpose.   Any advice or resources found here should be used at the user's own risk.   Drewslair.com and its administrator(s) assumes no responsibility for damages of any kind resulting from individual use of information contained herein.

© 2010, Andrew Comeau, except where otherwise noted. Material contained on this website should not be republished without permission from the author. Questions?  Comments?  You can e-mail me at this address.

Microsoft is a registered trademark of Microsoft Corporation in the United States and other countries.