0% found this document useful (0 votes)
31 views

Install XP On Pendrive

Uploaded by

lovetochataditya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Install XP On Pendrive

Uploaded by

lovetochataditya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 19

 Home

 News
 Software
 Articles / Guides
 Forums
 Links
 Blog
...back

Category: Advert
iseme
nt
How to install and run a FULL Windows XP from a USB
drive 12 Apr 2008

The ultimate guide for installing and running


Windows XP from a USB stick / HDD drive

Find tons of help with installation issues on our


Windows XP on USB Forum

What is this about?


To keep the introduction short, Microsoft denies that booting
Windows off a USB drive works.

See this page for example. It says:

Q: Can a USB storage device be the primary (and only)


means of storage?
No. USB-based mass storage devices cannot be the primary
hard disk storage solution on a regular system ...

Or this one from the microsoft newsgroups:

Windows cannot boot from an USB drive. If your computer


supports
booting from such device, you can load a boot loader to the
USB device
which starts Windows XP from the HDD.

Anyway, the web is full of those. I was wondering about the


same thing, as i did not want to put a Windows partition on
my Linux.based work laptop, and thought it was a good idea
to run Windows XP off a USB Hard drive that i just plug in
when i need it, and boot from it. To put a long story short, this
is exactly what i do now, thanks to the fantastic research of the
people credited below. However, it took me significant time to
figure out all the painful little problems, and i was not fully
happy with the current official guide by Dietmar (no pun, he
was the first to make ANYthing public). I wanted an easy
guide that allows creating a modified version of the Windows
XP CD, for painless and transparent installation to as many
systems as you want.

This page is the result of my work. Have fun!

Credits
...must go to the people that made this guide possible in the
first place. In recent months, a few blokes going by the
handles of mkiaer, Dietmar and sisal and a few others from
the 911.net forums came up with many good pieces of
research on how to enable any NT-based Windows to boot
from a USB-drive. Little of this guide would exist without
them - in fact the only reason why i write this up is that my
particular solution seems to be lower effort than any of the
steps i saw before. Many of the steps here are the result of
their research.

Version History:
 v1.0 - 3rd Mar 2006
rewritten, tested and working against two different
drives with my laptop.
 v0.9 - 29th Feb 2006
initial version, untested

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

Disclaimer
This is a hobby project of mine. I will not assume ANY
responsibility for the correctness of this guide, nor can I be
made liable for any errors, hardware or software problems /
loss that are caused by following this guide. Basically, if
things screw up, its your own fault. Do not follow the guide if
you fear data loss.

Requirements
 An existing Windows install for carrying out the steps
in this tutorial
 A USB2-compliant Hard disk drive (or a big USB2
stick, see remarks below)
 An original Windows XP CD (tested only against SP1
so far, but reported to work on other versions)
 A registered version of WinISO (or any other software
that allows direct editing of ISO files)
 The Microsoft CAB SDK
 A CD-burning software that can handle ISO files. I
like the free burnatonce

How To:
Summary:

We will dump the contents of your original Windows XP CD ,


extract a few files from the Image using ISO modification
software, edit the files, and put the modified versions back on
the ISO. The resulting ISO image is burnt back onto a CD
media, and can then directly be used to install Windows on
your USB drive.

I am also covering a few pitfalls that happened to me, in hope


they will save you a bit of time.

1) Does your computer support booting from USB?

Usually, if its an option in your BIOS boot sequence menu,


the answer to this is yes. If its not there, look for BIOS
updates. If you are not sure, proceed and see what happens ;-)

2) Sorting out the "Bootability" of your USB-Drive

Connect your USB drive to your computer, directly, without a


Hub. Then, shut down your computer, disconnect any other
hard disk drives from it, and insert your original Windows XP
CD into the drive. Start the installation, and proceed to the
section where you are allowed to pick a hard drive. If it goes
beyond the partition selection, your drive is already fine for
booting Windows XP. If not (seems to be the cases with many
of the Freecom USB HDDs for example), you will get an error
like "Windows is unable to find your drive, partition, data etc
bla". This is usually not a big problem. All you need to do is
"properly" format the drive. Reboot into your normal
Windows, and get this HP tool , and use it to format your
HDD completely. I chose NTFS format, worked fine
everytime i tried. After this, my drives are recognized as valid
installation devices by the Windows XP installer.
(In fact, i did not manage to create a USB primary partition
with FAT32 that was recognized as being installable)

3) Dumping the original Windows CD into an ISO File

Pretty easy one. Simply open WinISO, and select Actions ->
Make ISO from CDROM, and save your CD image.

4) Extracting the files we need to work on

After the CD dump is done, close and reopen WinISO. Then,


open the ISO file you just created using File -> Open.
Now, click the I386 folder, and select the following files (Ctrl
key to multi-select)

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

Select Actions -> Extract and put the resulting files into some
folder to work on them.

5) Unpacking IN_ files


Use the Cab SDK (from the command line) for extracting the
contents of the .IN_ files. Each of them contains exactly
one .inf file. If you are unsure how to use the Cab SDK, here
is an example command line: "cabarc x USBSTOR.IN_" .
You should end up with three new files in the folder, called:

 usb.inf
 usbport.inf
 usbstor.inf

You can now delete the .IN_ files.

6) Editing the files

This is the main job. i ll also try to explain a bit whats


happening. Use a simple Texteditor like Notepad.

6-A) TXTSETUP.SIF
This file is loaded on the initial install step by the Windows
XP CD installer. In this file, we will change the way Windows
treats USB devices during system setup -- the default is to
only treat them as input devices during installation -- we will
change this to include mass storage driver support (which
needs to be loaded into the installer much earlier in order to
work).

First, 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

... now 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, we also have to write several keys into the registry.


Convieniently, the txtsetup.sif allows you to specify files that
are parsed and instered into the registry at install time. 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. We are done with it.

6-B) DOSNET.INF

Now, 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

....

6-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

6-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

6-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

6-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 into their original IN_ format

If you have not already deleted your extracted .IN_ files, do so


now. They need to be replaced. Open a DOS shell again, and
navigate to the folder with your changed files. Then exceute
the following commands:

cabarc n USB.IN_ usb.inf


cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

The three IN_ files should now exist again.

Congratulations. All out modifications are done.

8) Inject the changed files into the ISO


Open your Windows CD image again with WinISO. Navigate
to the I386 folder, and delete the following files from the ISO,
saving the changes to the ISO afterwards:

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

Just to be sure all is updated in the ISO, cloase and repoen the
ISO in WinISO. Now, again go to the I386 folder and select
"Add Files". Now add your changed files, in detail:

 USBBOOT.INF
 DOSNET.INF
 TXTSETUP.SIF
 USB.IN_
 USBPORT.IN_
 USBSTOR.IN_

Save the ISO. You are done.

9) Burn the ISO back to CD

Feel free to use any burning package you want. I used the free
and simple Burnatonce

10) Install Windows XP from the CD

Shut down your computer. Disconnect ANY internal and


external hard drives (so Windows cannot find them during
installation and mess up their Master Boot Records hehe).
Some computers will have trouble to boot without an internal
HDD attached, check in your BIOS and, if possible, remove
the HDD from the boot sequence and set the USB Harddisk as
the first boot device, and the CDROM as second.

Also, now connect your USB Harddrive directly to the


computer, without any Hubs in between.
Windows should install just fine, with the exceptions noted
below.

Issues you will encounter during installation:

 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.

Once everything is up and running , shut down and


reconnect all your drives.

This version of the guide has been tested successfully on the


follwoing hardware configurations - please email me your
infos if you have successfully completed the guide, so I can
add your configuration as well:

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


tutorial.

have a lot of fun!

Emanuel Schleussinger
http://www.ngine.de
(Tags: windows )

User Write a new comment


Comments
on this (no markup is supported whatsoever)
article
Your Name:
HUm Post Title:
by Joe on 30 Comment:
Apr 2008
&
t=124
3 You
say:
*******
*******
*******
***
doh by Are you real?
emanu
el on
Thu
Mar
02,
2006
8:37
am
indeed
-
theres
a step
missin
g in
my
tutoria
l.
There
are a
few
driver
INF
files in
the
syste
m that
are
popula
ted
during
install
from
I386/U
SB*.IN
_
(which
are
simply
CAB
files
contai
ning
the
usb*.i
nf
driver
config)
. Can
you
try to
boot
into
BartPE
and
naviga
te to
your
(broke
n, USB
install
ed)
Windo
ws/inf
folder
(make
sure
hidden
files
are
shown
), and
then
edit
the
followi
ng
files
with
Notep
ad so
the
shown
sectio
ns
look
like
this:
usb.inf
:
[Stand
ardHu
b.Add
Servic
e]
Displa
yNam
e=
%Stan
dardH
ub.Svc
Desc%
Servic
eType
=1
Sorry
by Joe on 30
Apr 2008
Hey
sorry I
forget
the
more
import
ant
thing!
I
forget
to say
THANK
S ! It's
not
cause
it's not
work
for me
that I
don't
apprec
iate
your
site ! :
)

Great Article
by Jason on 30
Apr 2008
Worke
d on
the
followi
ng:
Dimm
ension
3100
Inspiro
n 9300
Neede
d to
get XP
drivers
found
on the
DELL
forum
s for
the
followi
ng:
Inspiro
n 1721
Inspiro
n 1521
Used
Sandis
k
Micro4
GB
Cruzer

Don't work
using Win XP
Pro SP2
by Joe on 30
Apr 2008
Hi,
First
my
compu
ter
can
boot
from
USB. I
try
with
DOS
and all
work
good.
Now I
try all
what
you
say
and
it's
work
until
the
compu
ter
restart
. Then
my
syste
m
Boot
again
from
CD
(and
so
want
install
Windo
ws
again).
And I
select
in my
BIOS
in
Boot
seque
nce: 1-
USB
(Kings
ton
DataTr
aveler
4GB)
2-
CDRO
MI
don't
unders
tand
why
my
syste
m
don't
boot
from
USB
after
that.

thanks
by zaga on 30
Apr 2008
It
works
with
xp
home
sp2
and
sp3 on
ASUS
EeePC,
USB
hard
disk.

© 2002-2008 Emanuel Schleussinger. Built with InfoStore and Wicket

You might also like