Update 03/31/2012: Before you try all of this, you may want to try using WinToFlash, a utility designed to create a bootable Windows flash drive for Windows XP/Vista/7/Server. If this works for you, you can skip the section on preparing a flash drive and jump straight to the installation instructions. Many of these steps will apply for different computers, some of the commands may differ a little bit.
If you’re trying to install Windows 7 on a netbook, Microsoft is making things even easier. Just use the Windows 7 USB tool.
Installing Windows XP or any other operating system is easy if you have a USB optical disc drive. But if all you’ve got is a USB flash drive and another computer with a DVD burner, you can still install Windows XP (or many Linux distributions for that matter) on a disc drive-less ultraportable like the HP Mini-Note or the Asus Eee PC. After spending most of Saturday installing Windows XP on my HP Mini-Note I thought I’d share my results with you. Remember, your results may very, so while these are the steps that worked for me, they may not work for you. For example, depending on the version of Windows XP you are using, you may need a different hotfix to install the audio drivers.
If you have no boot menu on your laptop and installation Windows 7 (or any other Windows) DVD was scratched.
try this:
1) download windows 7 installation ISO;
2) unpack it on flash drive;
3) boot from any installation CD/DVD (just to get close
to command promt);
4) format C: ;
5) copy contents of flash drive to c:;
(xcopy f:*.* C:);
6) reboot.
The PC will boot from C: as it was some DVD and will actually install Windows on itself.
If you’re trying to install Windows 7 on a netbook, Microsoft is making things even easier. Just use the Windows 7 USB tool.
Installing Windows XP or any other operating system is easy if you have a USB optical disc drive. But if all you’ve got is a USB flash drive and another computer with a DVD burner, you can still install Windows XP (or many Linux distributions for that matter) on a disc drive-less ultraportable like the HP Mini-Note or the Asus Eee PC. After spending most of Saturday installing Windows XP on my HP Mini-Note I thought I’d share my results with you. Remember, your results may very, so while these are the steps that worked for me, they may not work for you. For example, depending on the version of Windows XP you are using, you may need a different hotfix to install the audio drivers.
If you have no boot menu on your laptop and installation Windows 7 (or any other Windows) DVD was scratched.
try this:
1) download windows 7 installation ISO;
2) unpack it on flash drive;
3) boot from any installation CD/DVD (just to get close
to command promt);
4) format C: ;
5) copy contents of flash drive to c:;
(xcopy f:*.* C:);
6) reboot.
The PC will boot from C: as it was some DVD and will actually install Windows on itself.
How to install and run a FULL Windows XP from a USB drive12 Apr 2008
Credits
|
Host Hardware | USB hardware | Successful |
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.3) Dumping the original Windows CD into an ISO File
(In fact, i did not manage to create a USB primary partition with FAT32 that was recognized as being installable)
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.5) Unpacking IN_ files
Now, click the I386 folder, and select the following files (Ctrl key to multi-select)
Select Actions -> Extract and put the resulting files into some folder to work on them.
- TXTSETUP.SIF
- DOSNET.INF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
For the Easy Way use a program called 7 zip (seven zip) to do it fast or try the other way:
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:6) Editing the files
You can now delete the .IN_ files.
- usb.inf
- usbport.inf
- usbstor.inf
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]Finally, save and close TXTSETUP.SIF. We are done with it.
usbboot.inf = 1,,,,,,_x,3,,3
bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll = 1,,,,,,3_,2,0,0,,1,2
6-B) DOSNET.INF7) Repack the inf files into their original IN_ format
Now, open DOSNET.INF , and change the second [Files] section to look like this:6-C) usb.inf
[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx
....
Change the bolded lines in the [StandardHub.AddService] and [CommonClassParent.AddService] sections:6-D) usbport.inf
[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
Change the bolded lines in the [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] and [ROOTHUB.AddService] sections:6-E) usbstor.inf
[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
Change / Add the bolded lines in the [USBSTOR.AddService] section6-F) new file: USBBOOT.INF
[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3
ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender
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
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:8) Inject the changed files into the ISO
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.
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:9) Burn the ISO back to CD
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:
- DOSNET.INF
- TXTSETUP.SIF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
Save the ISO. You are done.
- USBBOOT.INF
- DOSNET.INF
- TXTSETUP.SIF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
Feel free to use any burning package you want. I used the free and simple Burnatonce10) 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:
have a lot of fun!
Emanuel Schleussinger
http://www.ngine.de