Windows XP(E) boots from USB (Tutorial Version 3)

D

Dietmar

Windows XP boots from USB


Author: Dietmar Stölting, 28. December 2005
(e-mail address removed)
Germany


Tutorial (Version 3)

1.) First you have to test, whether your computer can do USB boot at all.
Set all Bios entries for USB as enabled.
Copy the 3 files ntdetect.com, ntldr, boot.ini to your USB device from
which you want to
boot. The content of the boot.ini should be

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Professional1"
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP
Professional2"


The USB device from which you want to boot can be a USB harddisk (best for
testing) with FAT16,
FAT32 or NTFS (compressed) with partitionstable and first partition
activ,
a USB stick or any USB device formattet as Superfloppy.

If you see the bootmenue, USB boot is possible on your computer.


2.) Make a new XP SP1 or SP2 install on your harddisk.
(It is possible to copy your working XP to the USB device, but I prefer a
fresh install.)
The XP installation works best, if your IDE harddisk is complete formattet
or brandnew.
No other harddrive or USB device should be connected!

Dont install any other driver than from your XP CD, that can be done
later!

3.) When the fresh XP install is ready, disable pagefile.
(The pagefile can stay later on your USB device again.)

4.) Connect that USB device to your fresh installed XP, from which you
want to boot.

5.) Change the ntdetect.com against the cracked one.
If you have installed XP SP2, change also all the USB drivers against them
from XP SP1.

6.) Copy and past this fresh XP to your USB device. (From another XP
installation or BartPE.)
Recycled and System Volume Information copy not.

7.) Make a folder named Rettung in config folder on the USB XP and copy
Registry hive SYSTEM into.
From BartPE (or other XP) LOAD Registry hive SYSTEM of the XP on the USB
device and name it otto .

8.) Delete complete key Mounted Devices in otto.

9.) Delete complete key
HKLM\otto\ControlSet001\Control\CriticalDeviceDatabase.

10.) Here comes otto.reg. It will be your new CriticalDeviceDatabase.
Copy and past this text and call it otto.reg .


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase]

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0000]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0100]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0200]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0303]
"ClassGUID"="{4D36E96B-E325-11CE-BFC1-08002BE10318}"
"Service"="i8042prt"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0a03]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
"Service"="pci"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0b00]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0c02]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*pnp0c04]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\acpi#processor]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="Processor"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\lexarusb#gendisk]
"ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}"
"Service"="disk"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0600]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0601]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
"Service"="isapnp"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
"Service"="pci"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0c0300]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbuhci"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0c0310]
"Service"="usbohci"
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0c0320]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbehci"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\PS2_KEYBOARD]
"Service"="i8042prt"
"ClassGUID"="{4D36E96B-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\PS2_MOUSE]
"Service"="i8042prt"
"ClassGUID"="{4D36E96F-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\root#swenum]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
"Service"="swenum"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usb#root_hub]
"Service"="usbhub"
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usb#root_hub20]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbhub"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usb#Vid_1058&Pid_0300]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbstor"

[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\USBSTOR#DiskWDC_____WD1600BB-00FTA0_15.0]
"ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}"
"Service"="disk"


11.) Install otto.reg via doubleclick.

12.) Go to HKLM\otto\ControlSet001\Services

usbehci : Change start = 3 to start = 0
Change Group = Base to Group = System Bus Extender

usbohci : (if the key is there, if not go to next usbhub)
Change start = 3 to start = 0
Change Group = Base to Group = System Bus Extender


usbhub : Change start = 3 to start = 0
Change Group = Base to Group = System Bus Extender

USBSTOR : Change start = 3 to start = 0

Build a new key Group (REG_SZ) (this key is present for the other usb
entries)
Group = SCSI miniport


usbuhci : Change start = 3 to start = 0
Change Group = Base to Group = System Bus Extender


13.) Export otto as hive to folder config of your USB device.

14.) Unload otto in registry. It can be done by closing registry and
restart registry again.

15.) Copy hive otto to folder Rettung.
Delete hive SYSTEM.
Rename otto to SYSTEM.

Disconnect all your other harddrives drives but the USB device.

Shut the computer down and voila, XP boots from your USB device.


Nice to hear from you
Dietmar


PS: Tutorial for EWF Filter and HitachiMicrodriveFilter to prevent a USB
stick from to die
comes later. Test your USB XP, whether it can boot other
computers...hihi.
I make now a try with USB boot on a 160GB harddisk (formattet as
Superfloppy with Fat32)
on an old computer. I could also write a tutorial for Windows Embedded ,
to install any image
on any USB device (means run FBA).
With a little luck, this XPE image boots ANY computer from USB as single
device.
You can write me an Email about this.
 
D

Dietmar

Hi all,

I testet my own Tutorial 3
on a Computer with AMD CPU (XPSP2)
and on another with Intel (XP SP1).

It works with no correction.

AND: This XP SP1 boots on any other computer and this XP SP2 too, hihi,
vice versa.

My pupils say to me: For that the people from Microsoft put you (me
Dietmar)
in a big sack and carry (you) away



Nice to hear from you
Dietmar
 
D

Dietmar

Hi all,

I testet my own Tutorial 3
on a Computer with AMD CPU (XPSP2)
and on another with Intel (XP SP1).

It works with no correction.

AND: This XP SP1 boots on any other computer and this XP SP2 too, hihi,
vice versa.

My pupils say to me: For that the people from Microsoft put you (me
Dietmar)
in a big sack and carry (you) away



Nice to hear from you
Dietmar
 
D

Dietmar

Hi all,

I solved the problem with resetting start = 0 to start =3 while connecting
a new USB device!

It is so easy. Look on your USB device in Windows folder for the inf
folder.

Search USB.inf, delete USB.PNF.
Search usbport.inf, delete usbport.PNF.
Search usbstor.inf , delete usbstor.PNF.

Open usb.inf, (then usbport.inf, then usbstor.inf).

Set in each the loadergroup to System Bus Extender ONLY for usbhub,
usbehci, usbohci, usbehci.

Set start 0 ONLY for usbhub, usbehci, usbohci, usbehci.


Generate key loadergroup for usbstor and set it SCSI miniport .
Set start 0 for usbstor.

Thats all YIPPIPIIIiiiiiiiiiiiiiiiiiiiiiiiiii

Nice to hear from you
Dietmar
 
S

steves

It's easy for YOU to say ....
Anyhow, Congratulations!
It's nice to hear from you too.
(And apparently nobody has carted you off in a sack yet!)

Steves
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top