SolutionBase: Boot Windows XP from a USB flash drive
Almost everyone who has worked with computers for any length of time at all has run into at least one situation in which a problem left a PC unbootable. What if you could return the machine to a bootable state just by inserting a USB flash drive though? Believe it or not, it is actually possible to install a bootable copy of Windows XP onto a flash drive and then boot a PC off of the flash drive. From there, you can use applications that you have installed on the flash drive (anti virus, anti spyware, disk repair, etc.) to fix the PC's problem. In this article, I will show you how.
What's the catch?
As with most cool new techniques, there are a few catches. For starters, not every PC is capable of booting from a USB flash drive. For the most part, computers manufactured within the last two years are generally able to boot from a flash drive. Older systems may require a BIOS update, or might not be able to boot from a flash drive at all.
Another catch is that not every flash drive will get the job done. The primary factors that limit your use of a particular flash drive are capacity and speed. Technically, speed isn't really a limiting factor, but booting Windows will be painfully slow unless you use a flash drive that supports USB 2.0.
The flash drive's capacity is actually a limiting factor though. Surprisingly though, there are size limits on both the upper and lower end. Your flash drive can't be too large or too small. There isn't really a documented minimal size for a flash drive. You just need something large enough to hold Windows XP and a few applications. As you probably know, Windows XP normally consumes over a gigabyte of disk space. Later I will show you how to use a free utility to trim the excess fat off of Windows XP and make it a whole lot smaller. Even so, I still recommend that your flash drive be at least a minimum of 256 MB in size.
As I mentioned, there is a maximum size for the USB flash drive that you can use. Currently, USB flash drives exist in sizes of up to 4 GB, and 8 GB flash drives are expected to be available by the end of the year. As nice as it would be to have 8 GB to play with, the flash drive that you use for this project can be no larger than 2 GB. The reason for this is because you will have to format the flash drive using the FAT-16 file system, which has a 2 GB limit. Presently, you are stuck using FAT-16 because most computers will not recognize a flash drive as being bootable if the drive is formatted with anything other than FAT-16.
Preparing your Windows installation CD
One of the requirements for creating our bootable USB flash drive is a Windows XP with Service Pack 2 installation CD. If your Windows XP installation CD doesn't already include Service Pack 2, then you will have to make a CD that includes Service Pack 2 through a technique called slipstreaming.
In addition to your Windows XP installation CD, there are a couple of other things that you are going to need. For starters, you will need the HP USB Disk Storage Format Tool. You can download this tool for free.
Another utility that you are going to need is Bart's Preinstalled Environment Bootable Live Windows CD / DVD, or BartPE for short. You can download this utility for free from the BartPE Web site.
In addition to the software requirements, you must verify that the PC that you will be using to create the Windows deployment has 1.5 GB of free hard disk space (minimum) and supports booting from a USB device. I also strongly recommend that the PC be running Windows XP Service Pack 2. Prior to Service Pack 2, Windows XP sometimes had trouble interacting with USB storage devices.
Formatting the flash drive
Now that you have all of the prerequisites taken care of, it's time to actually start setting up our flash drive. The first step in doing so, as strange as it sounds, is to format the flash drive. Windows will actually let you format a flash drive in the same way that you format a floppy disk. However, formatting a flash drive in this way will not work for this project. Furthermore, using Windows to format a flash drive directly has been known to destroy some types of flash drives.
Instead, you must format the flash drive by using the HP USB Disk Storage Format Tool that you downloaded earlier. To do so, simply open the utility, select the device followed by the FAT file system option and click Start.
Once the device has been formatted, you must make it bootable. To do so, you must copy the BOOT.INI, NTLDR, and NTDETECT from the root directory of your PC's boot drive to the flash drive. These files are hidden by default, so you will either have to configure Windows Explorer to show hidden files (including protected operating system files) or you will have to open a Command Prompt window and use the COPY command to copy the files.
If you choose to use the Windows Explorer method, then open Internet Explorer and enter C: into the address bar so that you are looking at your local hard drive. Next, select the Folder Options command from the Tools menu. When the Folder Options properties sheet opens, select the View tab. Now, just select the Show Hidden Files and Folders and deselect the Hide Extensions for Known File Types and the Hide Protected Operating System Files check boxes. Click OK to continue.
Booting from the USB flash drive
Now that you have formatted your USB flash drive and installed the boot files onto it, the next thing that you must do is to configure your PC to allow you to boot from the flash drive. This is all done through the computer's BIOS Setup. I can't give you specific instructions for this part, because every computer is different. I can give you a few pointers though.
You can access your computer's BIOS by pressing a specific key immediately after you turn the PC on. The key varies, but it is usually either [F1], [F2], or [Delete]. Once you are in the BIOS Setup, you should verify that all of your computer's USB options are enabled. This might include things like support for legacy USB devices or support for USB 2.0. If there is a time out setting for USB devices, you should set it to the max to insure that the system doesn't time out while waiting on the USB device to boot.
Next, find the section on boot device priority. Normally, a USB flash drive (which is usually listed as USB-HDD, but may be listed as a removable device) will have a very low boot priority. If the USB flash drive's boot priority is lower than the hard disk (listed as HDD) then the only time the computer would ever boot off of the USB flash drive is if the system were to fail to boot from the hard disk. You must therefore rearrange the boot device priority so that the flash drive has a higher priority than the hard drive.
Now that we have finally made it through all of the prep work, it's time to start setting up Windows. As you have probably already guessed, the process of installing Windows to a flash drive is quite a bit different from your normal, run of the mill installation. There are a couple of reasons for this.
For starters, a full blown Windows XP deployment takes up over a Gigabyte of hard disk space. When you are installing to a flash drive, disk space is a scarce commodity. Even if you have over a Gigabyte of space on your flash drive, you probably don't want to use it all on Windows. It would be nice to have room to install a few applications. Therefore, you need to trim the excess fat off of Windows.
The other reason why the installation process is so different from the usual Windows installation is because Windows Setup is not designed to install Windows to a flash drive. You therefore have to configure Windows using an alternate method.
The PEBuilder utility that you downloaded earlier can take care of both of these issues. PEBuilder is designed to create a build of Windows XP (or Windows Server 2003) that does not take up as much space as a full blown installation. Once you create this new build, you can copy it to the flash drive. For right now, I will show you how to create a basic Windows build and copy it to the memory stick. Unfortunately, it's rather difficult to install applications once Windows is up and running. Therefore, after I show you how to create a basic Windows build, I will show you how to create a build that includes some applications.
Begin the process by opening PEBuilder. When you open PEBuilder, you will see a screen similar to the one that's shown in Figure A. Simply enter the path to the Windows installation files (the ones from your Windows XP with Service Pack 2 installation CD). Next, verify that the Create ISO Image and the Burn to CD check boxes are not selected and then click the Build button. PEBuilder will now create the new Windows build.
You must use PEBuilder to create a Windows build that will work with a flash drive.
Now, it's time to copy Windows to the flash drive. To do so, you will have to use a special batch file that's included with PEBuilder. Open a Command Prompt window and navigate to c:\pebuilder313\plugin\peinst. Now, insert an empty flash drive into the computer's USB port and then execute the file PEINST.CMD. You will now see a menu appear as shown in Figure B.
PEBuilder uses a batch file to install Windows onto a flash drive.
Type 1 and press [Enter] and you will be prompted to enter the path to the build that you have created. Enter C:\pebuilder313\BartPE. Now, type 2, press [Enter], and you will be prompted for the target path. Enter the drive letter that Windows has assigned to your USB flash drive. After doing so, the menu is updated as shown in Figure C. The menu now displays the source path and the destination drive. Type 5 and press [Enter] to install Windows to the flash drive.
Use menu option 5 to install Windows to the flash drive.
[Now that I have shown you how to create and install a basic Windows build, I want to talk for a moment about how you can add an application to the build (prior to creating it). The PEBuilder program comes pre-configured to support a number of common Windows applications, but does not come with the applications themselves.
The reason why installing applications can be a little bit tricky is because most Windows applications modify the Windows registry. The build that you are creating is basically a collection of installation files, and the build itself does not contain a registry (the registry gets created when Windows is installed onto the flash drive). As such, PEBuilder uses a sort of registry emulator.
If you go to the C:\PEBUILDER313\PLUGIN folder, you will see sub folders for a number of different applications. If you open one of these application folders, you will see that the folder contains an INF file and a FILES folder. The INF file contains all of the information that would normally go into the registry, and the FILES folder stores all of the program's files.
To see how this works, let's install an application that I'm sure most of you are familiar with; Nero. Begin by installing Nero onto the machine that's running PEBuilder, as if you planned to run Nero locally on that machine. When the installation completes, copy all of the files from C:\Program Files\ahead\Nero to C:\pebuilder313\plugin\nero burning rom\files. In this particular case, the nero burning rom folder is the folder that has been set aside for the Nero application. The Files sub folder is intended to store Nero's system files.
Now, you must take care of Nero's registry entries. To do so, go to the C:\pebuilder313\plugin\nero burning rom folder and open the PENERO.INF file using Notepad. As I explained earlier, the INF file in an application's folder is used to store the application's registry entries. For Nero and all of the other applications that PEBuilder predefines, the INF file is pre-configured. You just have to make a few changes that are specific to your system.
In this particular case, the PENERO.INF file is designed to support both Nero versions 5.x and 6.x. Initially, the lines for both versions are commented out. You must therefore determine which version you have and then remove the semi colon from the beginning of the lines that apply to that version. If you look at Figure D, you can see how the two versions are separated.
An application's registry entries are stored in an INF file.
Once you uncomment the appropriate lines, just replace "Your Name", "Your Company Name" and "Your Serial Number" with your name, your company's name, and your Nero product key. Save the file, and your set to go. The next time that you click the Build button, Nero will be included in the build.
Putting XP in your pocket
Running Windows from a flash drive isn't an exact science. Sometimes the process just doesn't work and there is no good reason why. As more PCs start to support booting from USB devices though, USB boots should become more standardized, and the technique should become more reliable.