07 October 2012

Another way customize winxp run on usb by embedded studio

Well, Microsoft has released Windows 8 as the next generation windows, which promises to take user to a new look and feel surface interactive enviroment. And Win8 has a very interesting feature which can make itself to be run on a usb disk ! Yes. The demand of using a portable OS is reality. It's really comfortable for using by that way, all settings and user profile just stay on an usb disk. When need to work on it, just plug the usb to any PC.

Today, there are a lot of Linux flavors that natively support booting and running from a usb disk. But with the old version of window, running from usb is really another story ! For a long time, alot of people have a dream of running a full winxp on usb disk, but all they get is just a small piece of XP called winPE (just an installation environment of windows). Yes, winPE can run, but it's not a full windows environment, you can only use it for an rescueing environment not for working nor entertainment.


Nowaday, with the help of modern driver and virtualization, there are a lot of way that can make winxp run fully on usb stick. So many thanks to nlite to make it smaller if you want, and many thanks to winvblock driver and grub4dos to map it and run it.

There is also another method provided by Microsoft to enable you to customize your winxp components. I use Microsoft Embedded Standard 2009 as the same function like nlite but it really work in a different manner. Nlite does use a full installation disc then remove the un-used components to slim it down, while Embedded Standard does the apposite method, it make user choose and collect the needed components to build up a customize workable winxp.

"As nlite removes away un-needed components, while Embedded Studio collects and build up from needed components."

After installing Embedded Studio, the main application that you need to build up a customize winxp is Target Designer. Open it, create a new blank design and put some basic components to build up a working winxp. In this post, I want to build up a mini working winxp (as minimal as possible), so I use the most needed components :
  • WinLogon Sample Macro. This macro includes some other components to provide a basic winxp logon. 
  • Some kind of PCI bus : 
    • PCI bus. 
    • PCI standard EISA bridge. 
    • PCI standard host CPU bridge. 
    • PCI standard ISA bridge. 
    • PCI standard PCI-to-PCI bridge. 
  • Standard Dual Channel PCI IDE controller. 
  • Standard Enhanced PCI to USB Host Controller. 
  • Standard IDE/ESDI Harddisk Controller. 
  • Standard Universal PCI to USB Host Controller.

Target Designer WinLogon Sample Macro

After that, I need to check the dependencies to resolve/add more related compontents. This step will automatically add more needed related components as : NT loader, NTFS filesystem format, Visual C++ Runtime, etc, ... Discover them by yourself if you want.

Dependencies Resolving Related Components were added

When dependencies check has done, you need to build the image. Later that, copy all the generated files to a new partition. In this case, the size of all files cost about 70MB disk space (after NTFS compression) ! Very small for a working windows. Awesome for me and maybe for you too.

Building the image Size of the new image

Before booting the new image, you need to make sure the partition is bootable. You can use bootsect.exe and look at here to see how to do that.

Let's boot from the new partition. The first time the image has booted, it need to run the FBA (first boot agent) process to config the running image. When done, the FBA should reboot again and your customed lite winxp is now ready to use.

FBA is processing Disk space cost after NTFS compression

The fact is that, with this image you will have a working winxp with minimal size, but you can only see it for fun. The image has only the windows core components, no more tools or application like Task Manager, Display Property, Wallpaper ...

Let's move back to Target Designer to create a new image with most common used components :
  • Add Hardware Control Panel 
  • Administrator Account 
  • Class Installers / Hardware Compatibility => support device classes in Device Manager. 
  • ... 
  • Visual Basic Runtime Library => Support for installing software as Microsoft Office. 
  • Visual C++ Runtime Library 
  • ...
There is a very interesting component that support booting the image directy from usb device. Just search for the keyword usb boot and you will see. By this component, winxp can natively boot from usb disk without needing futher drivers or vhd technology.

Add more enterprise components using Target Designer USB Boot 2.0 component support booting from usb

After adding some most common comp, check to resolve dependencies and again build up the new image. If you want to use NTFS compression for saving disk space, remember to make exclusion for the file ntldr, this file need to be uncompress for booting.

An winxp embedded with most common use components

The new image now take about 150MB disk cost. For futher using, you can try add/remove for more components that satisfy for your demand. That's it. Such really awesome with Embedded studio to create rich customizable winxp for lite weight and running on usb disk.