Author: Dietmar Stölting, 2. Januar 2006
dietmar....@t-online.de
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 a partitionstable and the first partition
set activ,
or a USB stick >= 1GByte. If you are a GURU, it is possible to use a 256
MB USB stick with full XP!
Never use the USB stick without the EWF filter.
A USB stick dies, when it has been written about 1000000 times!
If you now 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.
(Whether the pagefile can stay later on your USB device again, is unclear
until now.)
4.) Connect that USB device to your fresh installed XP, from which you
want to boot.
5.) Copy and past this fresh XP to your USB device. (From another XP
installation or BartPE.)
Recycled and System Volume Information copy not.
5.) Change on the USB device the ntdetect.com against the modified one.
It is not needed on all computers, but it is sure.
If you have installed XP SP2, change there also all the USB drivers
usb*hci.sys, usbhub.sys,
and usbstor.sys in USB device folder WINDOWS\system32\drivers against them
from XP SP1.
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 become 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\*pnp0f13]
"Service"="i8042prt"
"ClassGUID"="{4D36E96F-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 Reserved
usbohci : (if the key is there, if not go to next usbhub)
Change start = 3 to start = 0
Change Group = Base... to... Group = System Reserved
usbhub : Change start = 3 to start = 0
Change Group = Base... to... Group = System Reserved
USBSTOR : Change start = 3 to start = 0
Build a new key Group (REG_SZ) (this key is present for the other usb
entries)
Group = System Reserved
usbuhci : Change start = 3 to start = 0
Change Group = Base... to... Group = System Reserved
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.
16.) 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 LoadOrderGroup... to... System Reserved ONLY for usbhub,
usbehci, usbohci, usbuhci .
Set StartType = 0 ONLY for usbhub, usbehci, usbohci, usbuhci, usbstor.
Generate key LoadOrderGroup for usbstor and set it also System Reserved .
Shut the computer down.
Disconnect all your other harddrives but the USB device and voila:
XP boots from your USB device!
Make a backup direct from your USB device if later something went wrong.
17.) I add a special feature:
If nothing works, change the ntoskrnl.exe against
a special ntoskrnl.exe .
It is the ntoskrnl.exe from XP SP1, but not that from CD, but that from
your updated XPSP1 via Microsoft with Version 5.1.2600.1634
(xpsp2.050301-1526)
it is NOT XP SP2 ntoskrnl.exe .
If you receive then after changing a 021 error message, disable all
Harddisks and
CDROMS in your Bios. After first USB Boot you can enable them again.
Thats all, dont give up, it will work!!!
I received Emails from all over the world that it is true.
Nice to hear about your results
Dietmar
PS: A Tutorial for the EWF Filter is avaible from SFiorito.
For the Hitachi Microdrive Filter, that shows your USB stick as
nonremovable harddisk,
search this forum and you can get all the information you need.
Test your USB XP, whether it can boot other computers...hihi.
But always make a backup of your USB device before!
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 any USB as
single device.
this is interesting because it means, that not all computers like my
"quasi genric " entry
for the WD160BB harddisk in the CriticalDeviceDatabase.
Though, if the behavior of your computer is like this, you still have to
put the Vid and Pid numbers and the hardwareID
per hand to the CriticalDeviceDatabase as I told you in Tutorial Version
2.
Here comes a new otto.reg
which works perfekt for Windows Embedded.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase]
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\*azt0502]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"
[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\*pnp0600]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"
[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\*pnp0c01]
"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\e_isa_up]
"ClassGUID"="{4D36E966-E325-11CE-BFC1-08002BE10318}"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\gendisk]
"ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}"
"Service"="disk"
[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]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbohci"
[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\primary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\PS2_KEYBOARD]
"ClassGUID"="{4D36E96B-E325-11CE-BFC1-08002BE10318}"
"Service"="i8042prt"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\root#swenum]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
"Service"="swenum"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\secondary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usb#class_08&subclass_02&prot_50]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="USBSTOR"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usb#class_08&subclass_05&prot_50]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="USBSTOR"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usb#class_08&subclass_06&prot_50]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="USBSTOR"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usb#root_hub]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbhub"
[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_08ec&pid_0010]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="USBSTOR"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usbstor#disksony____msc-u01n________]
"ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}"
"Service"="disk"
[HKEY_LOCAL_MACHINE\otto\ControlSet001\Control\CriticalDeviceDatabase\usbstor#disksony____msc-u01_________]
"ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}"
"Service"="disk"
Nice to hear from you
Dietmar