Go Back   Digit's Technology Discussion Forum > Member Reviews > Tutorials

Tutorials This section offers tutorials and How to's on just about anything related to computers and IT. Note: All tutorials are courtesy the posters and not verified by Digit

Reply
 
Thread Tools Search this Thread Display Modes
Old 24-12-2008, 03:19 PM   #1
cooldudie3
MacBoy and Wiiboy
 
cooldudie3's Avatar
 
Join Date: Jul 2007
Location: MACHEAVEN
Posts: 690
Send a message via AIM to cooldudie3 Send a message via MSN to cooldudie3 Send a message via Yahoo to cooldudie3 Send a message via Skype™ to cooldudie3
Default Install Windows XP on a USB HDD/Stick

Though it is not supported, it actually works!
Quote:
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.

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


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.SY S"
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.sy s"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci"," Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci"," Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","D isplayName",0x00000000,"USB2 Enabled Hub"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","E rrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","G roup",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","I magePath",0x00020000,"system32\DRIVERS\usbhub.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","S tart",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","T ype",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.sy s"
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.sy s"
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.

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.
source:HERE

If you really want to try, post your com and USB HDD/Stick here so I can add it to the "tested list".
__________________

AAAPPPLLLEEE!!
cooldudie3 is offline   Reply With Quote
Old 24-12-2008, 08:55 PM   #2
desiibond
Human Spambot
 
desiibond's Avatar
 
Join Date: Oct 2007
Location: Bangalore
Posts: 4,304
Default Re: Install Windows XP on a USB HDD/Stick

Tell me one use of having xp on usb??
__________________
Altec Lansing MX5021, Creative Live 24-bit, AMD X2 7750BE, Corsair 4GB DDR2 800MHz, Gigabyte MA78GM-US2H, 512MB HD4770, Dell 198WFP, 160 Gb+250Gb seagate sata2, sony 20x dvdrw, pctv 110i tuner card
desiibond is online now   Reply With Quote
Old 24-12-2008, 09:07 PM   #3
MetalheadGautham
The Smaller Bang
 
MetalheadGautham's Avatar
 
Join Date: Sep 2007
Location: Gautham City
Posts: 6,102
Default Re: Install Windows XP on a USB HDD/Stick

^^If your PC/Laptop comes with Windows 6 (AKA Windows Vista) or Linux 2.6 (AKA 99.99% of all distros Distros)or FreeDOS, you might want to see how XP feels like on the machine without messing with MBR.

But one major flaw XP has is that its hardware locked on installation. You need to crack it so that it does not refuse to boot due to change of hardware when you insert the USB device into another machine and boot.
__________________
The entropy of my brain just keeps increasing
MetalheadGautham is offline   Reply With Quote
Old 25-12-2008, 04:15 AM   #4
cooldudie3
MacBoy and Wiiboy
 
cooldudie3's Avatar
 
Join Date: Jul 2007
Location: MACHEAVEN
Posts: 690
Send a message via AIM to cooldudie3 Send a message via MSN to cooldudie3 Send a message via Yahoo to cooldudie3 Send a message via Skype™ to cooldudie3
Default Re: Install Windows XP on a USB HDD/Stick

And it doesn't take up space in your internal HDD which means 2-3 more GB of music, videos and last night's homework!
__________________

AAAPPPLLLEEE!!
cooldudie3 is offline   Reply With Quote
Old 25-12-2008, 05:55 AM   #5
topgear
Fast 'N' Furious
 
topgear's Avatar
 
Join Date: Jul 2006
Location: Geek's Heaven
Posts: 2,132
Default Re: Install Windows XP on a USB HDD/Stick

Nice Find. Thanks For Sharing
__________________
topspeed

http://topgeartopspeed.wordpress.com/
topgear is offline   Reply With Quote
Old 25-12-2008, 02:30 PM   #6
cooldudie3
MacBoy and Wiiboy
 
cooldudie3's Avatar
 
Join Date: Jul 2007
Location: MACHEAVEN
Posts: 690
Send a message via AIM to cooldudie3 Send a message via MSN to cooldudie3 Send a message via Yahoo to cooldudie3 Send a message via Skype™ to cooldudie3
Default Re: Install Windows XP on a USB HDD/Stick

Anyone try it yet?
Post Computer and USB HDD/Stick if you have tried with any other computer.
__________________

AAAPPPLLLEEE!!
cooldudie3 is offline   Reply With Quote
Old 31-12-2008, 05:47 PM   #7
cooldudie3
MacBoy and Wiiboy
 
cooldudie3's Avatar
 
Join Date: Jul 2007
Location: MACHEAVEN
Posts: 690
Send a message via AIM to cooldudie3 Send a message via MSN to cooldudie3 Send a message via Yahoo to cooldudie3 Send a message via Skype™ to cooldudie3
Default Re: Install Windows XP on a USB HDD/Stick

^Reported. Why do newbies these days post things so unrelated?! This happens so many times!
__________________

AAAPPPLLLEEE!!
cooldudie3 is offline   Reply With Quote
Reply

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Ram Problem: Transcend 1GB Stick vs Xion 1GB Stick. GauravCJ Hardware Troubleshooting 5 24-10-2008 10:55 PM
(help) how to install windows xp with usb stick (not to boot with bart pe) gauravsuneja QnA 0 21-06-2008 08:51 PM
whether one should stick to windows XP or upgrade it to vista? rrkar Fight Club 31 24-04-2007 05:56 AM
Portable Windows XP for USB Stick jack// ani QnA 12 01-11-2006 11:28 AM
How to install windows 2000(pro)After install of xp? rajas700 QnA 4 23-10-2005 01:32 PM




Read Expert Laptop Reviews


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.