As I mentioned in my “Creating Virtual Machines with Microsoft Virtual PC 2007” article, Microsoft Virtual PC is one of the top contenders in a growing line of Virtual Machine utilities. I will not go into the age-old fight on who’s best – Microsoft Virtual PC or VMWare’s software. Both are free and both are good, but as far as I am concerned, the latest version, called Microsoft Virtual PC 2007, is my preferred VM tool for my own personal use. You can download Microsoft Virtual PC 2007 for free from the following link:
Note that besides Virtual PC, Microsoft also offers a more robust product called Virtual Server 2005 R2. We will deal with that product in a later article. When you work with Virtual Machines you must allocate at least one virtual hard disk per machine. The virtual machine “sees” the virtual hard disk as a real hard disk, and is able to format it and install itself on it. Microsoft Virtual PC also supports two types of virtual hard disk that I want to talk about in this article:
As you’ve see, differencing virtual hard disks are a good method of sharing the same VM with many users, or share the same virtual hard disk with many VMs. So how do we create one? Creating differencing hard disks is easy. Just follow these steps:
Without going into great detail here, create a new VM by specifying the name of the VM, the location of the virtual hard disk and the .VMC file, select the type of operating system you’re going to install, and allocate the right amount of memory to the VM. You can read more about creating virtual machines in Microsoft Virtual PC 2007 on my “Creating Virtual Machines with Microsoft Virtual PC 2007” article .
After creating the VM you need to boot it, and install the required operating system on it. The installation process is as smooth as installing the OS on a real computer, and is only a notch slower (based upon your host’s machine hardware specifications.
If the OS requires entry of a CD-Key (or Product Key) – do it. If not (like Windows Vista), you can leave it to a later phase.
Make sure you install all the relevant components. Also, you might want to leave the ISO image for the installation CD available on the network in order to allow for future additions of OS components. In order to keep the virtual disk as small as possible I try not to copy the i386 (or equivalent) installation folder to the VM.
In this step you will want to customize the base image VM as you want it to appear in all subsequent clones of that VM. For instance, install any file, tweak, addition, program, tool or other item that you want to have on ALL the VMs that are based upon this base VM.
If you plan to clone the base VM many times and you plan to have these machines on the same network (for example when creating an Active Directory-based lab of several servers and a few client machines) do NOT activate the base VM!
If all subsequent clones will work independently from one another (for example when creating a lab of one Windows XP Pro SP2 machine that will have several applications installed on it but none will work together at the same time or will not be part of the same AD domain) then you can activate the base VM.
Remember, cloning VMs is like “ghosting” a real machine. You must use SYSPREP in order to create unique SIDs, computer names and other settings for each cloned machine.
Read the Links section for more info on SYSPREP.
Also, note that you should install the VM Additions on the base VM.
Next comes the nice part. After customizing the base image you need to shut down the base VM. Make sure you do NOT perform the following step unless you are 100% sure that the current state of the base VM is EXACTLY like you want it to be cloned. You will NOT be able to easily modify the base VM AFTER you’re created differencing disks of it, so pay close attention.
In the Microsoft Virtual PC console, click on the Settings button for the base image VM. Click on the Enable Undo Disks checkbox and click Ok.
At this moment you should have 2 files in the base VM’s folder. A VHD file for the virtual disk, and a VMC file for the VM settings.
Now you need to boot the base image VM once. Let it boot all the way, log on to the OS if you want to.
If the base image cannot be booted “all the way”, because, for example, you’ve got a SYSPREP unattended script waiting for the cloned machines to be booted and you’d like to keep it that way, do NOT boot it “all the way”, and instead just let the VM boot for a few seconds. When either the logon page has appeared, or you think enough time has passed (and a few seconds is all you need), close the base VM by closing the Virtual PC window for the VM.
Make sure you select Turn Off and Save Changes from the drop-down list, and UNSELECT the Commit Changes to the Hard Disk checkbox. Now press Ok.
If you look at the base VM’s folder you will see 3 files. A VHD file for the virtual disk, a VMC file for the VM settings, and a VUD file for the undo disk. The VUD file is probably very small, but fear not, it will not remain so for long.
Now we need to rename the VUD undo disk to whatever the new cloned hard disk will be called, and change the file type to VHD. Click on the VUD file and either right-click and select Rename or press F2.
Now you have a (small) new VHD that is linked to the base virtual hard disk of the base VM.
You can also copy the original VMC file, or, if you want to, you can create a new one in step #7.
Now we need to disable the Undo Disk feature for the base VM. In the Microsoft Virtual PC console, click on the Settings button for the base image VM. Click to UNSELECT the Enable Undo Disks checkbox and click Ok.
Note: You must never re-boot the base VM. If you do so, you might ruin all the differencing disks that are related to it.
Since you are not allowed to ever reboot the base VM you can simply delete it from the list of VMs in the Virtual PC console.
Open Windows Explorer, right-click on the original VHD file, and select Read Only. Press Ok.
Now we can create as many new VMs from the cloned VUD file that we renamed in step #5. You can copy that file as many times as you want, and for each time you copy it you can create a VM out of it. Follow the steps outlined in my “Creating Virtual Machines with Microsoft Virtual PC 2007” article.
Note: Remember the SYSPREP issues mentioned in step #2. Any cloned machine that you want to place on the same network as other cloned machines must be SYSPREPed. Note: The cloned VM hard disks can have Undo Disks enabled on them, if you so please. Note: Remember, you will (probably) need to activate each cloned machine, unless you’re using an OS that does not require activation or has a VLK license. Finally, when you boot your cloned machines they work normally, and when you close them they save their changes to the differencing virtual hard disk that uses the now-unchanged base VM hard disk.
How to use the Sysprep tool to automate successful deployment of Windows XP – 302577 http://support.microsoft.com/kb/302577 How To Use the System Preparation Tool (Sysprep.exe) to Perform Disk Duplication – 298491 http://support.microsoft.com/kb/302577 Download details: Windows XP SP2 Deployment Tools for Advanced Users
Got a question? Post it on our Virtual Server & Virtual PC Forum!