How to Install XP on an External Hard Drive

By Jason Gordon

Updated February 10, 2017

Windows XP was built to run on internal system hard drives. It has no simple setup or configuration option to run on an external hard drive. It is possible to \"make\" XP run on an external hard drive, but it involves a lot of tweaking, including making the external drive bootable and editing boot files.

Creating the Windows XP Boot Image

Set your BIOS so that USB booting is enabled. (Your BIOS must support boot from USB.) Connect the USB external hard drive directly to your computer.

Make an ISO image (an .iso file is an archive disk image of an optical disk) from the Windows XP CD-ROM using your preferred software. Save to your hard drive.

Open the ISO file you just created. Navigate to the I386 folder, and select the following files: TXTSETUP.SIF, DOSNET.INF, USB.IN_, USBPORT.IN_, and USBSTOR.IN_. Extract the files and put them into a folder to work with.

Open a command prompt and use Cab SDK to extract the contents of the .IN_ files; Cab SDK is a Microsoft compression and decompression program available as an .exe file in your Windows directory. Each of the .IN_ files contains exactly one .inf file. An example command line would be: \"cabarc x USBSTOR.IN_\" . You should end up with three new files in the folder, called USB.inf, usbport.inf and usbstor.inf. Delete the .IN_ files.

Open the files using a simple text editor such as Notepad. Edit them according to the section below titled \"Editing Files.\"

Open the previously created ISO file and delete the files you extracted earlier. Replace them with the newly modified files.

Save the ISO files and burn them to a CD using the burning software of your choice.

Insert the CD you created and restart the computer. Make sure it is set to boot from CD. Most computers will do this automatically, but if not, hit F8 on startup to choose boot options. When asked, choose the external USB hard drive to install WIndows XP.

Editing Files

Open TXTSETUP.SIF and move the following entries from [InputDevicesSupport.Load] to the [BootBusExtenders.Load]: usbehci = usbehci.sys usbohci = usbohci.sys usbuhci = usbuhci.sys usbhub = usbhub.sys usbstor = usbstor.sys

Move the following entries from [InputDevicesSupport] to [BootBusExtenders]: 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

Insert the following in the [HiveInfs.Fresh] section: 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

Insert the following commands into the [SourceDisksFiles] section:

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

Open USB.INF and change lines in the [StandardHub.AddService] and [CommonClassParent.AddService] sections to look like this:

Open usbport.inf and change lines in the [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] and [ROOTHUB.AddService] sections to look like this:

Open usbstore.inf and change lines in the [USBSTOR.AddService] section to look like this:

Create a new file called USBBOOT.INF in the same directory as the other modified files, and paste the following content into it: [usbservices]

Delete your original extracted .IN_ files. Open the command prompt and navigate to the folder with your changed files. Execute these commands to repack the files: cabarc n USB.IN_ USB.inf cabarc n USBPORT.IN_ usbport.inf cabarc n USBSTOR.IN_ usbstor.inf

Items you will need

  • Windows XP CD

  • USB external hard disk drive

  • ISO creation software (WinISO)

  • CD-burning software that can handle ISO files