Windows XP on your USB Stick/Drive

Guide for Installing and Running WINDOWS XP from a USB stick / USB HDD

 

Who should read this guide

Anyone that knows how to install Windows and change boot sequences in their BIOS. If you can do that, chances are you are experienced enough to understand everything else in this guide. It includes simple extracting, compressing and editing of files, also handling ISO files.

 

What this guide hopes to accomplish

The end result that we are looking forward to achieve here is to have a separate Windows XP system on a handy and portable storage device. The effect is, you just plug it to your PC and turn it on and wait for it to load. This is really nice if your hard drive suddenly breaks down or if you have another system installed on your PC (linux for example)and only use Windows every once and a while.

 

Disclaimer

Microsoft does not support or recommend (to the point of denying it) installing Windows on a USB drive. So if something goes wrong, may it be hardware or software related, please don’t point the finger on me. DO NOT follow this guide if you are afraid of such things happening.

 

Credits

  • mkiaer, Dietmar and sisal and a few others from the 911.net forums
  • Emanuel Schleussinger of http://www.ngine.de

These are the people that provided all the information found on this guide. Nothing is to be credited to the author of this guide, I’m just spreading the word so to speak.

 

Has anyone tried it yet?

Here is a quote from Emanuel Schleussinger of http://www.ngine.de

================================

BEGINNING OF QUOTE FOR EMANUEL

What works?

Basically, everything as far as i can see. After completing this tutorial, your Windows XP install should directly boot off your USB-drive, and be fully upgradable, DirectX games will run, all apps i tested work like normal, speed is the same as with a real HDD (you need USB2 though) – so it is in fact a fine solution as far as i can see.

Host Hardware USB hardware Successful
Dell Latitude D820 WD Pocket Drive 80gb Yes
DFI Infinity Ultra 2 Dane Elec 4GB USB Stick Yes
Asus M2A-VM HDMI Adata PD2 4GB Stick Yes
HP Compaq 6510b WD 2908A Yes
Compaq nc6400 WD2500BEV Yes
Compaq nc6400 Trekstore i.Beat 2GB No
Compaq nc6400 Hitachi DK23EA-30 No
Compaq nc6220 TrackStore DataStation XU Yes
HP Pavillion dv6700t InfoSafe USB with Toshiba SATA 250GB Yes
Compaq nc6120 Lacie 80gb Yes
Asus P5LD2-VM Vantec IDE to USB cable + Maxtor 60gb PATA Yes
Thinkpad T42 WD HDD Passport 2 Yes
Acer Aspire 5600 Ipod 20g Photo Yes
Thinkpad T43 Generic 80gb USb2 case Yes
HP Pavillion dv1000 Generic USB2 HDD Yes
Thinkpad R61 Generic USB2 / Seagate 120 GB Yes
Dell Latitude D620 PQI i221 USB stick Yes
Fujitsu Lifebook E8410C Shintaro USB2 + 80GB Samsung Yes
Dell Inspiron 6400 generic USB2 enclosure Yes
Intel 945 GNT Kingston 4GB SDHC with USB adapter Yes
HP nx6110 Sandisk Cruze 8gb Yes
HP nx6110 OneTouch4 Mini No
Dell Latitude D620 Seagate FreeAgent 500GB Yes
Acer Aspire 5710G Adata 4GB stick Yes
…and LOTS more…

 

END OF QUOTE FOR EMANUEL

================================

I think that already answers the question. This guy has done it on so many devices.

 

What do we need?

  • An up and running installation of Windows to carry out the steps in this guide.
  • A USB2-compliant disk drive
  • Windows XP CD
  • Microsoft CAB SDK
  • A CD-burning software that can handle ISO files
  • Any software that allows direct editing of ISO files (including adding and removing of separate files within the ISO file)

 

Preview of what’s going to happen

We will create an CD IMAGE of your Windows XP CD in ISO format. We recomend a registered version of WinISO but you can use any software you want to do this one. Then we will extract a couple of files there, edit them and replace the original files with the edited ones in to the ISO file. The new and improved ISO file (hehehe I just had to say that)is going to be burnt to a CD and then use that to install Windows XP on a USB drive.

PLEASE FOLLOW THESE STEPS

1. Does your computer support booting from USB?

Check your BIOS if USB is part of the boot sequence. If it is, then congratulations! If not, see if you can get an update for your BIOS. And if you’re not sure, continue to step 2 to check.

2. Verifying if your BIOS supports USB Booting.

Shut down you computer, disconnect your internal hard drives and connect your USB disk. Boot with your Windows XP CD and start the installation up until you are ask to choose where to install. If you can see your USB device from the choices then your computer supports USB booting. If not, and you get an error like “unable to find your drive” then you need to properly format your USB drive. Restart your PC without continuing the install setup and download this HP tool. Use that to format your USB drive, it will save you sometime to choose NTFS over FAT32 as your file system, so that XP can detect your USB as a valid installation device.

3. Creating a ISO CD image of your Windows XP CD

If you’re using WinISO just select “Make ISO from CDROM” option found under “Actions” and select a location where you like to save your ISO file. If your using another program, just make sure you end up having a CD image of you windows XP CD in ISO format.

4. Extracting files from our CD image

Open or load your newly created CD image unto an ISO editing software. If you’re using WinISO just click on FILE then OPEN and locate your ISO file. Once its loaded, locate and access the “I386” folder and select the following files

  • TXTSETUP.SIP
  • DOSNET.INF
  • USB.IN_
  • USBPORT.IN_
  • USBSTOR.IN_

If you’re using WinISO, use the “Extract” option under “Actions” and put them to a folder. We will edit them later.

5. Unpacking IN_ files

Here we will need to use “Cab SDK” from the command prompt to extract the contents of the IN_ files that we have. Each of them contains one .INF file so we should end up with 3 new files all having an .INF extension. If this is the first time your using CabSDK here is an example: in the command line type “cabarc x USB.IN_” and it will produde a USB.INF file. Do the same for the remaining two IN_ files. Once you finish, delete the .IN_ files. We won’t be needing them anymore

6. Editing the .INF files

This is the most important part of this guide, don’t screw up OK? Use any text editing software for this part. Notepad will do just fine.

a. TXTSETUP.SIF

move the following entries from [InputDevicesSupport.Load] to the [BootBusExtenders.Load] section , as shown here

[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
isapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = ohci1394.sys
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys

[InputDevicesSupport.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbccgp = usbccgp.sys
hidusb = hidusb.sys
serial = serial.sys
serenum = serenum.sys
usbstor = usbstor.sys

 

… do the same for [BootBusExtenders] and [InputDevicesSupport]

[BootBusExtenders]
pci = “PCI-Bustreiber”,files.pci,pci
acpi = “ACPI Plug & Play-Bustreiber”,files.acpi,acpi
isapnp = “ISA Plug & Play-Bustreiber”,files.isapnp,isapnp
acpiec = “Integrierter ACPI-Controllertreiber”,files.none,acpiec
ohci1394 = “IEEE-1394-Bus-OHCI-konformer Anschlusstreiber”,files.ohci1394,ohci1394
usbehci = “Erweiterter Hostcontroller”,files.usbehci,usbehci
usbohci = “Open Hostcontroller”,files.usbohci,usbohci
usbuhci = “Universeller Hostcontroller”,files.usbuhci,usbuhci
usbhub = “Standard-USB-Hubtreiber”,files.usbhub,usbhub
usbstor = “USB-Speicherklassentreiber”,files.usbstor,usbstor

[InputDevicesSupport]
usbehci = “Erweiterter Hostcontroller”,files.usbehci,usbehci
usbohci = “Open Hostcontroller”,files.usbohci,usbohci
usbuhci = “Universeller Hostcontroller”,files.usbuhci,usbuhci
usbhub = “Standard-USB-Hubtreiber”,files.usbhub,usbhub
hidusb = “HID-Parser”,files.hidusb,hidusb
serial = “Treiber f�r seriellen Anschluss”,files.none,serial
serenum = “Enumerator f�r seriellen Anschluss”,files.none,serenum
usbstor = “USB-Speicherklassentreiber”,files.usbstor,usbstor
usbccgp = “USB Generic Parent Driver”,files.usbccgp,usbccgp

Next, insert the following in the [HiveInfs.Fresh] section:

[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = dmreg.inf,DM.AddReg
AddReg = usbboot.inf,usbservices

 

and also in [SourceDisksFiles]

[SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3
bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll = 1,,,,,,3_,2,0,0,,1,2

Finally, save and close TXTSETUP.SIF.

b. DOSNET.INF

Open DOSNET.INF and change the second [Files] section to look like this:

[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

c. USB.INF

Change the bolded lines in the [StandardHub.AddService] and [CommonClassParent.AddService] sections:

 

[StandardHub.AddService]
DisplayName = %StandardHub.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender

[CommonClassParent.AddService]
DisplayName = %GenericParent.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbccgp.sys
LoadOrderGroup = Boot Bus Extender

 

d. USBPORT.INF

Change the bolded lines in the [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] and [ROOTHUB.AddService] sections:

[EHCI.AddService]
DisplayName = %EHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbehci.sys
LoadOrderGroup = Boot Bus Extender

[OHCI.AddService]
DisplayName = %OHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbohci.sys
LoadOrderGroup = Boot Bus Extender

[UHCI.AddService]
DisplayName = %UHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbuhci.sys
LoadOrderGroup = Boot Bus Extender

[ROOTHUB.AddService]
DisplayName = %ROOTHUB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender

 

e. USBSTOR.INF

Change / Add the bolded lines in the [USBSTOR.AddService] section

[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3

ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender

 

f. New File USBBOOT.INF

Create a new file called USBBOOT.INF in the same directory as your other changed files, and put the following content into it:

[usbservices]
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”DisplayName”,0x00000000,”USB Mass Storage Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”ErrorControl”,0x00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”Group”,0x00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”ImagePath”,0x00020000,”system32\DRIVERS\USBSTOR.SYS”
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”Start”,0x00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”Type”,0x00010001,1

HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”DisplayName”,0x00000000,”USB 2.0 Enhanced Host Controller Miniport Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”ErrorControl”,0x00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”Group”,0x00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”ImagePath”,0x00020000,”system32\DRIVERS\usbehci.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”Start”,0x00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”Type”,0x00010001,1

HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”DisplayName”,0x00000000,”USB2 Enabled Hub”
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”ErrorControl”,0x00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”Group”,0x00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”ImagePath”,0x00020000,”system32\DRIVERS\usbhub.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”Start”,0x00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”Type”,0x00010001,1

HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”DisplayName”,0x00000000,”Microsoft USB Universal Host Controller Miniport Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”ErrorControl”,0x00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”Group”,0x00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”ImagePath”,0x00020000,”system32\DRIVERS\usbuhci.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”Start”,0x00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”Type”,0x00010001,1

HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”DisplayName”,0x00000000,”Microsoft USB Open Host Controller Miniport Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”ErrorControl”,0x00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”Group”,0x00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”ImagePath”,0x00020000,”system32\DRIVERS\usbohci.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”Start”,0x00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”Type”,0x00010001,1

7. Repack the INF files to IN_ format

Now we will repack theINF back to IN_. If you still have those old IN_ files, please delete them because we will create new ones to replace them. In the command prompt locate the directory where your INF files are and type these commands:

  • cabarc n USB.IN_ usb.inf
  • cabarc n USBPORT.IN_ usbport.inf
  • cabarc n USBSTOR.IN_ usbstor.inf

it should produce three IN_ files, if not please make sure you type them correctly.

8. Injecting the changed files into the ISO CD Image

Open or load your ISO file for editing and navigate to the I386 folder. DELETE the following files:

  • DOSNET.INF
  • TXTSETUP.SIF
  • USB.IN_
  • USBPORT.IN_
  • USBSTOR.IN_

Reload the ISO file to make sure the deletion was successfull. Also navigate back to the I386 folder and ADD your changed files, this should include the following:

  • DOSNET.INF
  • TXTSETUP.SIF
  • USB.IN_
  • USBPORT.IN_
  • USBSTOR.IN_
  • USBBOOT.IN_ (the new file)

Save the changes to your ISO.

9. Burn the ISO file to a blank CD

You can use any cd burning software you like for this step.

10. Install Windows XP from our newly burnt CD.

Shutdown your computer. Disconnect all internal hard drives. change your BIOS’s boot sequence, set the first boot for USB and CD ROM as the second. Connect your USB hard drive DIRECTLY to your computer. Windows should install relatively fine from this point with a couple of exceptions. Here they are:

  • During driver installation, the USB drivers will prompt you, as they are “not certified” – This is normal. Our changes invalidated the checksum, and therefore the driver is no longer signed. Just press “yes” a couple of times.
  • Upon completion of the install, the system will complain once on the first bootup that the pagefile does not exist. You can ignore this for now, as Windows will work fine without it. People are looking at fixing this issue, but its not critical for now.

After your done installing everything, shutdown your computer and reconnect all your internal hard drives, change you boot sequence if necessary and reboot.

If you have troubles, please visit the forum dedicated to this tutorial.

This guide is a modified version, if you want to view the original by Emanuel Schleussinger please visit http://www.ngine.de.

1 Comment

  1. Pingback: usb stick

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s