Microsoft Virtual PC
AndrewComeau.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:
- Running different operating systems on one machine without having to create separate
partitions on the hard drive. This might be necessary when testing software
under different configurations or after an operating system upgrade if existing
software is not fully compatible with the new OS.
- Running different software configurations for development and testing, such as multiple
versions of a software that would ordinarily conflict if installed on the same system.
- Temporary installation of programs for evaluation. By installing the software
in a virtual session, it can be evaluated without cluttering the registry or risking
problems caused by software defects, viruses and spyware.
- Quick reconfiguration of machines as needed for training or demonstration purposes.
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 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.)
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.
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.
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
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
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.
'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.
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:
- I'm now working with Visual Basic.NET and I wanted a basic environment (i.e. without
the development software loaded) on which to test out an application. One
of the Access machines I created was perfect for this. It only had a basic
Windows configuration on it and I was able to see if the application would run outside
of the machine it had been created on.
- I bought a utilities package last week for cleaning up the registry and other aspects
of the system. The software was highly recommended but still, it does work
with the registry and could do some serious damage if it doesn't live up to its
reputation. So far, it's running great on one of the virtual machines and
I also got to see which of the utilities I wanted to install and which I didn't
need.
- One of the things that bugs me about some of these online games is the additional
components they want to install just to run some game that only has about 15 minutes
of entertainment value in it anyway. Once again, Virtual PC lets me try the
game out without cluttering my system with who knows what. The Undo Disks
feature has also come in very handy for something like this. Not only is the
host system safe but all changes to the virtual machine itself can can be easily
erased.
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.
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. AndrewComeau.com
and its administrator(s) assumes no responsibility for damages of any kind resulting
from individual use of information contained herein.