How to: configure Windows to boot from a USB

The availability of high capacity USB memory sticks has inquiring minds asking the question: can I run Windows from a fast solid state device?

If you could, the advantages would be huge – think of the speed and convenience. Unfortunately, Windows Vista and Windows XP currently both have restrictions by design and by licensing to prevent direct booting from a USB device.

However, it’s been shown on the Internet how to hack the Windows XP installation to make it run from a stick, and in the presence of another hard disk. If you intend on doing what Microsoft doesn’t want you to, you can find out more details on the Channel 9 forums.

Enter Windows XP Embedded

We can still legally explore Windows booting from a USB 2.0 device with Windows XP Embedded (XPe) – an operating system and development platform in componentised form.

Based on the same binaries as Windows XP Professional, Windows XPe enables developers to choose from over 10,000 feature components to maximise functionality and reduce footprint for a specific device implementation.

There is, however, a restriction – we can use XPe as long as the final runtime system we're using it in is not ‘a general purpose computing device’. So as long as the piece of kit we run our XPe operating system from is a custom device we’re in the clear.

And we can do this for free thanks to the open-ended evaluation licence for the XPe tools – only the created XPe installations expire between 90 and 180 days after first boot.

The tools never expire, which means we can simply refresh our OS images when they expire.

Rules to remember

There are some positives to using XPe. For one, the wealth of Windows applications and your existing development skills can all be used on the system built.

Also, by including the Generic Device Driver Support component in an OS image specification you get Drivers.Cab deployed – just in case there are a variety of ‘specific computing devices’ you wish to use it with during development.

You’ll also need to think about the PC you intend using for the project. Although USB storage devices are becoming available, their performance is entirely dependent on the host’s USB controllers. Most machines today do not support high speed USB 2.0 booting in the BIOS.

Basic USB 2.0 BIOS support allows for booting at USB 1.1 speeds, and once the OS is loaded additional drivers bring the USB 2.0 functionality on line. This is the case for many machines.

To boot from USB 2.0 and take full advantage of devices such as the fast Corsair Survivor sticks, the motherboard BIOS must support high speed USB 2.0 pre-OS. So let’s think of some specific devices we’d like to build.

Well, there’s that unobtrusive PVR, that mega hi-res digital photo frame, an IP webcam using that old laptop motherboard and webcam, a solar-powered weather monitoring station and a digital home control kiosk.

There are tons of scenarios where the hobbyist can use Windows XPe from a USB stick. In this case, I’m going to build an XPe image that boots from USB and provides a simple PVR using a Hauppauge USB Nova-T.

Only my newest laptop – a giant Toshiba X200-219 – has adequate USB 2.0 booting support. So this is going to be my ‘development system’.

Your OS your way

Now a successfully built and booting XP Embedded image is ready, customisations to support our specific device can be made.

The base image I have built is 592MB in size. This incorporates most of the typical XP features – login, Windows shell, applications etc; so apart from the evaluation message on the desktop and being labelled Windows XP Embedded – it looks and feels like XP Pro.