Service that allows you to boot installed Windows NT (XP, 7, 8, Server 2012) from USB device
C++ C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin initial commit Jan 22, 2014
src initial commit Jan 22, 2014
LICENSE Initial commit Jan 22, 2014
README.md Update README.md Dec 31, 2017

README.md

UsbBootWatcher

This is simple service that allows you to boot installed Windows NT (XP, 7, 8, Server 2012) from USB HDD or USB stick. Method is based on findings from Dietmar Stoelting - it allows USB drivers to be loaded during boot time (no more BSOD 0x0000007B).

To make your windows bootable from USB device, you normally have to modify driver (.inf files) and system to accept digitally unsigned drivers. This service allows you to avoid changes to drivers and have the digital signature enforcement enabled.

This is possible because the UsbBootWatcher service monitors registry for changes under following paths:

SYSTEM\CurrentControlSet\Services\usbstor
SYSTEM\CurrentControlSet\Services\usbehci
SYSTEM\CurrentControlSet\Services\usbohci
SYSTEM\CurrentControlSet\Services\usbuhci
SYSTEM\CurrentControlSet\Services\usbhub

It sets value Start to 0 and value Group to Boot Bus Extender when changed by driver updates / invalidations.

UsbBootWatcher is updating usbstor, usbehci, usbohci, usbuhci, usbhub drivers, but you can also specify custom driver by addint it to UsbBootWatcher.conf.

Installing Windows to USB device

Microsoft does not officially allows you to install Windows to USB device, hovewer, there is simple trick to do this - you can install it like OEM partner. To do so, you will need existing windows installation with admin permissions (or use Recovery console).

You will need these tools: imagex, bcdboot. You can get them from here.

Then prepare your drive (create primary partition and make it active on your usb drive) using diskpart:

diskpart
list disk
select disk __DISK__
list partition
select partition __PARTITION__
format fs=NTFS quick 
active 
assign 
exit

Now you can use imagex to copy your installation image to the device (considering d: is your USB device and e: windows installation medium containing install.wim):

imagex /apply e:\sources\install.wim 3 d:
bcdboot d:\Windows /s d: /v

More about imagex More about bcdboot

Done! And now you can install UsbBootWatcher to the target device like (it will automatically copy to target device and create service there):

UsbBootWatcher /prepare d:\Windows\System32

Boot your USB device and continue installation. If you receive 0x0000007B BSOD after first installation step (device installations), just re-run UsbBootWatcher prepare command from your working windows installation or recovery console.

Authors

License