Windows XP Embedded Virtual PC Image (lab coming soon!)

We’ve been delivering Windows XP Embedded labs at a number of conferences dating back to the initial release of Windows XP Embedded in 2001, in many cases the labs were configured to run on PCs that have two partitions, the first partition boots Windows XP Professional SP2 and has the Windows XP Embedded tools installed on this partition – the second partition is configured to be 700MB and will boot a Windows XP Embedded operating system that’s been configured and built in the first partition – this works really well but is time consuming to setup – we have the first Windows CE Virtual Lab up and running which is hosted in a Virtual PC 2004 environment it would seem to be a good time to move some of the Windows XP Embedded labs over to be hosted in Virtual PC (tools and bootable operating system image) – there are two advantages to doing this.

1. Labs now become portable for world-wide events – copying some (large) VHD files is easier than configuring hard drive partitions and installing/testing Windows XP Embedded from the other side of the planet!

2. The Virtual PC hosted labs can also be made available online through the MSDN/Virtual Labs site.


Here’s Windows XP Embedded running in Virtual PC 2004 – note that I’ve simply built and booted an Information Appliance o/s configuration – ideally you would replace the Windows XP shell with your own custom application (perhaps another lab idea!).

I decided to move away from using partitions and instead setup a second Virtual Hard Drive (VHD) at 700MB fixed size to be the boot media for the custom Windows XP Embedded operating system image – in the image below you can see I have two Hard Disks setup, the first  for Windows XP and the XPE development tools, and the second being a 700MB fixed size drive for booting/running the XPE image.

To boot the Windows XP Embedded operating system image I needed to modify boot.ini (lives in the root folder of the C: drive, and has System and Hidden flags set) – the default boot.ini is configured to load/run Windows XP from the C:\Windows folder – I simply added a second line to the boot.ini to give me the option of loading Windows XP (and XPE development tools) or starting the XPE image.

 With Boot.ini updated restarting Virtual PC gives the following menu, I can choose to boot Windows XP or Windows XP Embedded.

I’m now working on getting some Windows XP Embedded labs posted to the MSDN Virtual Labs site – I will post a link when these are available.

– Mike

Comments (5)

  1. Vahid says:

    I need to test windows xp embedded


  2. Tamer says:

    Hello Mr. Hall, i am a university student in Istanbul/Turkey and we are working on a project and need to install XP Embedded on a kit, have you got illustrated installation guide in any site? thank you for your consideration…

  3. Wolf Logan says:

    That’s a great idea, but it makes me a little itchy to use a single dual-boot VM with my development tools on one drive and the target image on the other. I wish there was a way to leave the development system in one VM while running the target in another. It would certainly save the reboot time when switching back to the development side.

  4. mikehall says:

    dual booting is a great way to experience the development tools in a lab environment (either Virtual Labs on MSDN or at a conference) – using Virtual PC as a target and tools installed on a development PC also works really well.

    – Mike

  5. Wolf Logan says:

    That’s what I was thinking. I realise that putting the development tools on the host makes for a more troublesome deployment in a lab setting. For "real" development I’d probably have the dev environment on the host, and deploy to a VPC, as you suggest.

    I just wish there was a way to do that *between* VPCs…

    I suppose you could, with a little fiddling, expose the drive image for the target VPC via host file sharing into the development VPC, then deploy to it as if it were a local VPC target. I’ll have to give that a try sometime.