sorry for late reply, i saw this thread first time, so none of you ever heard of installing XP on external hard disk, it's possible, but too complicated, i was able to install it on USB pen drive and booted successfully, though when installing on external HDD, my PC was'nt able to recognise it, though my laptop was able to boot it fine, so it was that my PC's bios was not able to support that...
Alternatively, if this still does'nt work for you, then you can try to install windows 7 on external HDD, the method that i have for that is 100% working as for me, so if anybody want that tutorial, ask for it, and i'll post it here or in a new thread..
NOTE: This method works, but i'm not sure if it'll be able to boot from SATA connections when you connect it back, as we modify how windows treat the USB devices, but you can give it a try..
So let's start with it..
1) Does your computer support booting from USB?
Usually, if it's an option in your BIOS boot sequence menu, the answer to this is yes. If it's not there then the answer is probably no. However, proceed and see what happens.
2) Confirming the "Bootability" of your USB-Drive
Shut down your computer
Connect your USB drive directly to one of your USB ports on your computer, without using a Hub
Disconnect any other hard disk drives (internally) from it
Turn on your computer. Confirm that Bios is set to start from CD
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 with the NTFS file system. After this, the drives are recognized as valid installation devices by the Windows XP installer. There has been no success reported in using the FAT32 file system for such purposes.
3) Dumping the original Windows Setup CD into an ISO File
Pretty easy one. Simply open WinISO or your ISO program of choice, and select Actions -> Make ISO from CDROM, and save your CD image to a convenient place on your hard disk drive.
4) Extracting the files we need to work on
After the Windows ISO image is done, close and reopen UltraISO.(or the program of your choice) Then, open the ISO file you just created using File -> Open.
Now, click the I386 folder, and select the following files (hold down Ctrl key to multi-select)
TXTSETUP.SIF
DOSNET.INF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
Select Actions -> Extract and put the resulting files into a folder on your C: drive. I usually put the files into a new folder called primary (ie C:\primary)
5) Unpacking IN_ files
Use the Cab SDK program from *theether.net/download/Microsoft/Utilities/Cabsdk.exe and install the tools directly on your C: drive.. (Alternatively, if you don't want full SDK, you just need one file from it, CabArc.exe, download it from here: *www.easy-xl.com/index.php?option=com_rokdownloads&view=file&Itemid=215&id=6:cabarc).
I install the tools into C:\cabsdk and would recommend you to do the same..This program is meant to be ran from a cmd window..so click start-->run-->cmd and press enter. In the command window, if you installed cabsdk to the folder mentioned above "C:\cabsdk" type the following: cd C:\cabsdk\bin then press enter. and now your command prompt should look like this...
C:\cabsdk\BIN
(The following assumes you saved the files you extraced from the iso file to "C:\primary")..
Next you will want to unpack the .IN_ files by typing in the cmd window:.. cabarc x C:\primary\USB.IN_ then press enter. Repeat this process until you have done it for USB.IN_ USBPORT.IN_ and USBSTOR.IN_ you will then have the following inf files in the BIN directory of the cabsdk folder.
usb.inf
usbport.inf
usbstor.inf
Close the Command window.
5-A) Create a new folder on your C:\ drive:
Name it edited then move the following files from the BIN folder in the cabsdk directory to the folder named edited on your C: drive:
usb.inf
usbport.inf
usbstor.inf
5-B) Copy the following files:
Copy the following files from C:\primary to C:\edited
TXTSETUP.SIF
DOSNET.INF
6) Editing the files
This is the main job. i ll also try to explain a bit whats happening. Use a simple Texteditor... Notepad is the one you want to use. The find uitlity (Ctrl F) Will be your best friend through this process. Also take your time with editing the files. Double..no..triple check everything as you go. There is no harm in being sure you have completed each step correctly.
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 bolded entries from [InputDevicesSupport.Load] to the [BootBusExtenders.Load] section , exactly as shown here.. Note: Delete the bolded lines from [InputDevicesSupport.Load] after you have moved them to [BootBusExtenders.Load]
[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 move the bolded entries from [InputDevicesSupport] to [BootBusExtenders] Note: Delete the bolded lines from [InputDevicesSupport]
after you have moved them to [BootBusExtenders]
[BootBusExtenders]
pci = "PCI Bus Driver",files.pci,pci
acpi = "ACPI Plug & Play Bus Driver",files.acpi,acpi
isapnp = "ISA Plug & Play Bus Driver",files.isapnp,isapnp
acpiec = "ACPI Embedded Controller Driver",files.none,acpiec
ohci1394 = "IEEE 1394 Bus OHCI Compliant Port Driver",files.ohci1394,ohci1394
usbehci = "Enhanced Host Controller",files.usbehci,usbehci
usbohci = "Open Host Controller",files.usbohci,usbohci
usbuhci = "Universal Host Controller",files.usbuhci,usbuhci
usbhub = "Generic USB Hub Driver",files.usbhub,usbhub
usbstor = "USB Storage Class Driver",files.usbstor,usbstor
[InputDevicesSupport]
usbehci = "Enhanced Host Controller",files.usbehci,usbehci
usbohci = "Open Host Controller",files.usbohci,usbohci
usbuhci = "Universal Host Controller",files.usbuhci,usbuhci
usbhub = "Generic USB Hub Driver",files.usbhub,usbhub
hidusb = "Human Interface Parser",files.hidusb,hidusb
serial = "Serial Port Driver",files.none,serial
serenum = "Serial Port Enumerator",files.none,serenum
usbstor = "USB Storage Class Driver",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: Make sure the entries are lined up
[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 (yes there are 2 sections called [Files]) to look like this:
[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx
Save and close DOSNET.INF
6-C) usb.inf
Change the bolded lines in the [StandardHub.AddService] and [CommonClassParent.AddService] sections to resemble the ones below:
[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
Save and close usb.inf
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
Save and close usbport.inf
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
Save and close usbstor.inf
6-F) new file: USBBOOT.INF
Make a copy of one of the .inf files from your edited folder (Please note..I said a copy) on your desktop...Rename it USBBOOT then open it up with notepad and delete all of the text in the file. Then copy and paste the text below into it. Save the file, and move it to the folder where your edited files are. (Also note: the spaces in the text below are fine)
Code:
[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) make a copy of the edited files in another folder on your C: drive. I name this folder "edited backup"
The reason we are doing this is: If you accidentally enter the commands wrong while repacking the files to their .IN_ format it can ruin all
the work you have done up to this point. So with that said.. make another folder on your C: drive and name it edited backup and copy the files from the edited folder into edited backup. That way if something does go wrong you can always copy the good edited file from the backup folder and not have to do all the work again.
8) Repack the inf files into their original IN_ format
Now if you took my suggestions throughout this guide, the cabsdk tools should have been installed to C:\cabsdk
The original .IN_ files, TXTSETUP.SIF and DOSNET.INF should be in C:\primary
The unpacked and edited inf files (usb.inf, usbstor.inf and usbport.inf) TXTSETUP.SIF, DOSNET.INF and USBBOOT.INF should be in C:\edited, and you should have a backup copy of the edited files in C:\edited backup
Open the cmd prompt window again (start--->run--->type cmd and press
enter) in the cmd prompt window type cd C:\cabsdk\BIN and press enter.
To repack the files we need to execute the following cabarc commands
cabarc n USB.IN_ C:\edited\usb.inf
cabarc n USBPORT.IN_ C:\edited\usbport.inf
cabarc n USBSTOR.IN_ C:\edited\usbstor.inf
Close the cmd window Note: There is a space between .IN_ and C: in the commands. The three IN_ files should now exist again in the BIN folder of the cabsdk directory
Congratulations. All our modifications are done.
9) Create one last folder:
On your C: drive create one last folder and name it "final edit" then
copy the following files to it:
USB.IN_ (from the BIN folder of cabsdk)
USBSTOR.IN_ (from the BIN folder of cabsdk)
USBPORT.IN_ (from the BIN folder of cabsdk)
USBBOOT.INF (from the edited folder)
DOSNET.INF (from the edited folder)
TSTSETUP.SIF (From the edited folder)
10) Inject the changed files into the ISO
Open your Windows CD image (The iso file you created) with WinISO or your program of choice. Navigate to the I386 folder, and delete the following files from the ISO,
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
saving the changes to the ISO afterwards.
Just to be sure all is updated in the ISO, close and repoen the ISO in WinISO or your program of choice. Now, again go to the I386 folder and select "Add Files". Now add your changed files from C:\final edit, Make sure you are adding the files to the I386 directory in the iso.
USBBOOT.INF
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
Save the ISO then open it again and check to make sure the new files are in the correct directory...if so.. You are done with this portion of the procedure.
11) Burn the ISO back to CD:
For burning iso's I use Ashampoo Burning Studio, you can use whatever you like, i'd suggest IMGBurn for free... Once the burning has completed
you now have your windows cd that should be capable of installing to an external USB drive
12) Place the new windows cd in your cd drive
13) Preparing to install to the USB drive:
Shut down your computer. Disconnect ANY internal and external hard drives (Except the external one you want to install windows on, so Windows cannot find them during installation and mess up their Master Boot Records.) Also, now connect your USB Hard drive directly to the computer, without any Hubs in between.
Windows should install just fine, with the exceptions noted below.
14) 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. This issue is being looked into, but its not critical for now.
Also sometimes in External HDD, an error may come as "Your computer's startup program cannot gain access to the disk containing the partition or free space you chose. Setup cannot install Windows XP on this hard disk.", for this error, i connected it to my lappy, from Easeus Partition Master, i converted the partition of XP installation to active and then the installation worked fine..
15) what to do after the install has finished:
Once everything is up and running , shut down and reconnect all your drives.