This tutorial is based on Dietmar technique http://www.911cd.net/forums//index.php?showtopic=14181
All you need is one working installation of XP (or better) and my self made service (source included).
The only reason why Dietmar edited INF files is that system overwrites registry values for usbstor, usbehci, usbohci, usbuhci, usbhub start / group when new USB device is inserted (the unsigned driver warning dialog can show up if you modify driver) to the hub. System automaticaly replaces these registry values from driver (INF file).
The only purpose of my service USB_BOOT is to check for change in usb driver registry values and automatically fix it to the proper USB boot ones. Simply, system reads the registry values when booting, not the driver INF files.
Ok, this is how to install Vista/XP on your USB harddrive or stick.
1) Start installing on the USB drive and break after first reboot. Then boot working OS and connect your USB drive there.
If you use Vista/2008 you might get error message (system cannot be installed on USB hdd blabla). Easiest way is to connect your USB hdd to your PC over sata/ide, start installation, and after first reboot, place it to your external USB case again (continue step 2, and continue installation from USB drive!!!). The harder way is to start installation somewhere else and after first reboot copy complete image of partition to your usb drive / I didnt tried this one yet
2) In working OS simply run usb_boot.bat and enter your USB drive system32 path
3) Continue installation from USB drive.
4) If you get bluescreen after installation reboots, repeat step 2.
5) Done
! Update - group is now set as Boot Bus Extender, thanks cdob
Click to view attachment
---
I created new improved version of the service with configuration file!
usbbootwatcher.conf
CODE
[usbstor]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbehci]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbohci]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbuhci]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbhub]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbehci]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbohci]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbuhci]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
[usbhub]
Start@REG_DWORD=0
Group@REG_SZ="Boot Bus Extender"
to see supported commands
CODE
usbbootwatcher.exe /?
to install service on current system (copy to system32 before). Remove old service first (sc stop "USBBOOT" and sc delete "USBBOOT")
CODE
usbbootwatcher.exe /install
uninstall
CODE
usbbootwatcher.exe /uninstall
to prepare registry for usb boot on another disk - update registry (as set in .conf file) and create service USBBOOT
CODE
usbbootwatcher.exe /prepare e:\windows\system32
! 5.1.2009 fixed issue while reading registry file
