How to Convert a Physical Windows XP Machine to a VM (P2V) for Use in VirtualBox

For those asking the question: “Is it possible to convert an existing physical Windows XP workstation using VirtualBox?” Well, the short answer is “No, you can’t convert it DIRECTLY with VirtualBox”. However, it IS possible to convert it to a virtual machine using a free product (VMware Converter) and then use VirtualBox as the host-based virtualization platform. VirtualBox is capable of using vmdk files, the format that VMware converter creates in it’s P2V process.

VirtualBox is an open-source, freely available virtualization product that can run on a variety of different host operating systems: Windows XP, 2003, 2008, Vista, Mac OS X (Intel only), several Linux distros, and Solaris 10 x86 to name a few. Go to http://www.sun.com/virtualbox for more information and downloads. Of course, there are other host-based virtualization products that are available: VMware Server and Fusion, Xen, and Parallels to name a few. However, none of these support as many platforms as VirtualBox – and it’s FREE!

The host computer in this example is an Apple Macbook 2Ghz Core 2 Duo, with 2GB RAM, running Mac OS X 10.5.7 and VirtualBox 3.0.0. The physical machine being P2V’d is an older PC with an AMD 3100+ CPU and 768MB RAM running Windows XP (non-OEM) w/SP3 (please be aware that you still need to adhere to Microsoft’s licensing policies). The physical machine has two PCI cards: an ATI 9600XT graphics adapter and an SMC 10/100 NIC. I also used a portable USB hard drive formatted with a FAT32 filesystem as a destination for the VM conversion.

This is essentially a 2-step process:
1. Convert the physical machine to a VM using VMware Converter
2. Create a new VM in VirtualBox using the VM that was “converted”.

So, let’s get started.

Converting the Physical PC
First, you’ll need to download and install the VMware Converter tool onto the physical machine you want to virtualize (in this case it’s the Windows XP machine). The version used in this example is VMware Converter 3.0.3

Installation of the VMware converter is pretty straightforward, just follow the dialog boxes to complete the install, I used the “Typical” installation option.

Launch VMware Converter:
1. Click the “Continue in Starter Mode” to get to the main converter window
2. Click the “Convert Machine” button located in the bottom half of the window.
– You will now be walked through the converter wizard –
3. Select “Physical Computer” as the Source Type, click next
4. Select “This local machine” as the Source Login, click next
5. The Source Data window allows you to specify which drives to include in the conversion. My machine only has a C: drive. It will list the drive size, as well as the used space. You can modify the drive size in the conversion – you can’t resize the “virtual” drive below the used space. Leave the “Ignore page file and hibernation file” checked (default), click next.

– Now it’s time to choose a destination for the virtual machine –
6. Choose “Other Virtual Machine” as the destination type, click next.
7. Give your virtual machine a name (mine was named xpvm in this example), and a location to store the VM that is going to be created. This is where I directed the location to the external USB hard drive. Select “Workstation 6.x, VMware Fustion 1.x, Player 2.x, ACE 2.x” as the type of virtual machine to create, click next.
8. Select a disk allocation option (I used “Allow virtual disk files to expand”), click next.
9. Select how many the NICs and the type of network you have and if you want them to connect at power on. I used the default which was one NIC, NAT and “Connect at power on” was checked, click next.
10. Customization window – all boxes were left unchecked, click next to begin the conversion process.

At this point, go grab a beverage of choice and a snack, it could take a while depending on the speed of your system and size of your drive(s) to be converted.

After the conversion finished, you need to move this newly created VM over to your host machine. I used an external hard drive as my destination, so I just removed it from the Windows XP box and attached it to the Mac. I then copied the VM to a location on the Mac’s internal hard drive. At this point the external hard drive is no longer needed. This probably all could have been done over an SMB share as well.

Now Let’s Bring the VM into VirtualBox (this assumes that you have already installed VirtualBox on your host machine)
1. Launch Virtual Box, then click the “New” button to create a new virtual machine, click next.
2. Give your virtual machine a name, select the operating system and version, for this example “xpvm” was the VM name, OS is “Microsoft Windows”, and Version is “Windows XP”, click next.
3. Select the amount of RAM you would like to allocate to the VM. In most cases, the amount does not have to equal the amount of RAM that was on the physical machine. This may depend on the amount of RAM available in your host machine. For this scenario, 192MB was used, click next.
4. You will now be asked to set up your hard disk – this is the key step; you are now going to choose “Use an existing hard disk” then click the folder with the green arrow on it. This brings up the “Virtual Media Manager” window.
5. In the “Virtual Media Manager” window, click the “Add” button, this should launch another window – use this to locate the newly created VM, you are looking for a file that ends with a .vmdk extension. Once you locate this, select it and you will return to the “Virtual Hard Disk” window (your vmdk file should be listed in the box, click next.
6. Click the “Finish” button, at this point the VM is created and available inside of VirtualBox; however, you may need to make the following modification for it to boot.
7. In the main VirtualBox window, highlight the VM and click the “Settings” button. Click the System button and check the “Enable IO APIC” option. Click OK to save the settings.
8. In the main VirtualBox window again, click the “Start” button to fire up the VM.

Be aware that you may receive a couple of warning messages regarding devices that may not be on the host machine (floppy drive, serial port, etc), this should not prevent the VM from starting up.

One final note using VirtualBox, install the “Guest Additions” tool within the virtual machine. This is a package that will significantly enhance keyboard, video, and mouse performance inside of the VM.

As with many howto’s, your mileage may vary depending on the host and guest OS you want to virtualize. Good luck and happy virtualizing!

11 Comments

  1. Hi

    Thank you very much for this post. I have struggels with disk2vhd and then I tried your method with virtualboc and vm_converter. It worker perfectly. You saved me a lot of time.
    Thank you
    woestyn

    Like

    Reply

  2. Well took a while to make the vhd out of disk2vhd but it fired up without any issues. Im running the latest version of virtualbox 4.1.2 and physical machine was dell optiplex 960 running xp.

    Only thing it complained about was ATI card and multi monitor support which was after getting into OS :p nothing critical.

    One thing probably to note is that disk2vhd only support windows so you will still have to use the same method used above if ur using linux.

    Like

    Reply

  3. Alrite I wanted to share problem i faced when running virtualbox vm(p2v) on optiplex 960. Xp won’t boot and kept on giving me bluescreens. I ran the same VM on optiplex 780 and it worked fine and booted without a problem. So it was hardware based issue with 960 model.

    After wasting 2 hours toggling with options and google i found the solution :-

    1- Make sure in VM Settings (System / Processor – The option for Extended Features: Enable PAE/NX) is enabled.

    2- From XP Safe Mode (Yes VM boots into Safe Mode) run this command from CLI “sc config intelppm start= disabled”

    Hope this helps someone out there.

    Like

    Reply

  4. One of the limitations that is mentionned in the *.chm that comes with disk2vhd is the followig :

    disk2vhd can only handle disks that are lower than 127Gb, (you can NOT use it with bigger disks, even if the chosen partition to virtualize is smaller than 127Gb).

    Like

    Reply

  5. I followed all the steps mentioned I get a No bootable media found system halted from the VMDK.

    Any ideas , I am using Windows 10 host and converting it to VMDK using VMWare converter.

    Like

    Reply

Leave a comment