Please read this guide from start to finish before doing anything
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 WinISO.(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_
5) Unpacking IN_ files
Use the Cab SDK program from http://support.microsoft.com/kb/310618 and install the tools directly on your C: drive..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
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
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.infUSB to CANbus Adapter
High Performance 1-port for £71.50 Free downloadable driver & firmware
www.easysync-ltd.com6-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",0x000000 00,"USB Mass Storage Driver" HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010 001,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
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_
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_
11) Burn the ISO back to CD:
For burning iso's I use Alex Feinman's iso recorder which you can get here http://isorecorder.alexfeinman.com/v2.htm ...After you install ISO Recorder, no program group is created and there is no application to run. ISO Recorder is a Shell extension, which means it provides additional options in a file right-click menu. To create a CD with ISO Recorder right-click on a file with .iso extension and select "open with" then click "ISO Recorder" 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.
15) what to do after the install has finished:
Once everything is up and running , shut down and reconnect all your drives.
Special thanks goes out to kimsland for helping me with getting this guide ready to be posted to the forums.16) a few more notes:
This install will only work on the computer it was first installed on. You can't take it to a friends house or to school/work and boot a different computer with it without installing it from said computer.
Failure to disconnect any other hard drives may cause installation problems as well as corruption of the Master Boot Record (MBR) of the other hard drives.
No comments:
Post a Comment