![]() |
![]() ![]() |
Dec 29 2008, 07:20 AM
Post
#1
|
|
|
Member ![]() ![]() Group: Members Posts: 10 Joined: 18-March 08 Member No.: 35,571 |
I decided to make Vista/XP booting from the USB drive while it keeps all drivers untouched and properly signed.
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
Tutorial_31_12_2008.zip ( 89.74K )
Number of downloads: 12376--- 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" 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 This post has been edited by marv: Jan 5 2009, 07:32 AM
Attached File(s)
UsbBootWatcher.zip ( 117.72K )
Number of downloads: 5839
UsbBootWatcher_src.zip ( 12.8K )
Number of downloads: 1593 |
|
|
|
Dec 29 2008, 07:41 AM
Post
#2
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 4,954 Joined: 25-July 04 From: Italy Member No.: 6,779 |
Could you expand of what exactly USB_BOOT.EXE does?
Which keys changes, with what data, etc.... Would you think possible to use migrate.inf or edit SETUPREG.HIV to avoid a couple of steps? jaclaz -------------------- - Fighting against bloatware since 2004, and proud of it. -
|
|
|
|
Dec 29 2008, 09:52 AM
Post
#3
|
|
|
Member ![]() ![]() Group: Members Posts: 10 Joined: 18-March 08 Member No.: 35,571 |
Could you expand of what exactly USB_BOOT.EXE does? Which keys changes, with what data, etc.... Would you think possible to use migrate.inf or edit SETUPREG.HIV to avoid a couple of steps? jaclaz usb_boot.exe is service and it check for changes in registry for all of these SYSTEM\CurrentControlSet\Services\usbstor SYSTEM\CurrentControlSet\Services\usbehci SYSTEM\CurrentControlSet\Services\usbohci SYSTEM\CurrentControlSet\Services\usbuhci SYSTEM\CurrentControlSet\Services\usbhub it sets Start to 0 and Group to System Reserved when changed to diffrent Im not sure if its possible to start service while setup, but I try later and let you know This post has been edited by marv: Dec 29 2008, 09:57 AM |
|
|
|
Dec 29 2008, 10:30 AM
Post
#4
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 4,954 Joined: 25-July 04 From: Italy Member No.: 6,779 |
I see.
VERY good idea/approach! If you are positive that the data comes from .INF files, what if one changes the .INF themselves? Definitely it is possible to add usb_boot.exe to the build in TXTSETUP.SIF, and there is definitely some way to start it. In the archive posted there is NO usb_boot.bat. jaclaz -------------------- - Fighting against bloatware since 2004, and proud of it. -
|
|
|
|
Dec 29 2008, 10:34 AM
Post
#5
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,257 Joined: 31-October 03 Member No.: 2,304 |
Thanks for this service. This come in handy.
it sets Start to 0 and Group to System Reserved when changed to diffrent Why do you set all USB services to System Reserved?Compare HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\List System Reserved is real early. There are timing errors at some machines. I'm used "Boot Bus Extender" for usb?hci. And "System Bus Extender" for usbhub and usbstor. boot_usb_start0_CurrentControlSet.reg CODE REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbohci] "Start"=dword:00000000 "Group"="Boot Bus Extender" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbuhci] "Start"=dword:00000000 "Group"="Boot Bus Extender" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbehci] "Start"=dword:00000000 "Group"="Boot Bus Extender" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub] "Start"=dword:00000000 "Group"="System Bus Extender" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor] "Start"=dword:00000000 "Group"="System Bus Extender" QUOTE Im not sure if its possible to start service while setup, but I try later and let you know Import usb_boot.reg to setupreg.hiv. I can't test fully myself: I'm getting "(system cannot be installed on USB hdd blabla)". I install windows at VMware Player and copy files to USB flash. |
|
|
|
Dec 29 2008, 10:38 AM
Post
#6
|
|
|
Member ![]() ![]() Group: Members Posts: 10 Joined: 18-March 08 Member No.: 35,571 |
I see. VERY good idea/approach! If you are positive that the data comes from .INF files, what if one changes the .INF themselves? Definitely it is possible to add usb_boot.exe to the build in TXTSETUP.SIF, and there is definitely some way to start it. In the archive posted there is NO usb_boot.bat. jaclaz if you change .INF files, digital signature wont be valid anymore |
|
|
|
Dec 29 2008, 10:51 AM
Post
#7
|
|
|
Member ![]() ![]() Group: Members Posts: 10 Joined: 18-March 08 Member No.: 35,571 |
Thanks for this service. This come in handy. it sets Start to 0 and Group to System Reserved when changed to diffrent Why do you set all USB services to System Reserved?Compare HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\List System Reserved is real early. There are timing errors at some machines. I'm used "Boot Bus Extender" for usb?hci. And "System Bus Extender" for usbhub and usbstor. ... Thank for your reply. You are right, well, I used System Reserved wihout problems. I will fix to Boot Bus Extender |
|
|
|
Dec 29 2008, 06:23 PM
Post
#8
|
|
|
Member ![]() ![]() Group: Members Posts: 31 Joined: 12-November 07 Member No.: 33,180 |
Excellent work on getting a monitoring service going!
Looks like a simpler version of the usboot.org I like it. I have 3 statements/questions: 1) I only see services modification in your bat file, assuming exe only monitors changes to these services correct? 2) Do you not need usb device entry for the OS to actually boot your USB disk? It cannot add it on the fly as it is the OS? This will work for vista, not sure about xp seeing the device even after drivers being loaded. Reading variation of tutorials, seems like you need the USB drive device registered in xp before xp will boot from it. 3) In my workings I have seen HKLM\system\control*\services\USB*\Tag Dword playing a role in usb drive detection. If those are set in a particular order #, boot bus extender or system reserved start flags dont load the USB drive device. (drivers load, drive doesnt load to the OS showing BSOD) |
|
|
|
Dec 31 2008, 04:14 AM
Post
#9
|
|
|
Member ![]() ![]() Group: Members Posts: 10 Joined: 18-March 08 Member No.: 35,571 |
1) usb_boot.exe is service which fixes start and group for USB drivers, which is changed (from INF values, but this method doesnt touch INF files to keep digital signature) for example when you insert new USB device to hub, drivers update and so.
2) Yes, you have to force system (XP or Vista) to load usb drivers when booting / nt loader reads stuff from registry, as set in active ControlSetXXX, in running system - CurrentControlSet. 3) Hmm, such things are hard to test and never happened to me. This post has been edited by Ed_P: Dec 31 2008, 03:31 PM
Reason for edit: Removed needless quote. Please use the Add REPLY button.
|
|
|
|
Dec 31 2008, 10:14 AM
Post
#10
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 195 Joined: 14-February 07 Member No.: 25,175 |
Excellent! I will try this under Vista. I assume that the install batch file must be run with administrator rights (to be documented in the readme).
|
|
|
|
Jan 3 2009, 02:50 AM
Post
#11
|
|
|
Newbie ![]() Group: Members Posts: 9 Joined: 2-January 09 Member No.: 44,364 |
I tried this and when I ran the bat file it displayed the correct drive for where the install was located. It completed the backup of the registry, then it ran into an error and displayed that access is denied over and over again.
Any ideas on why this is failing. It says that the current control set is currentcontrol000 before it begins to error. I have a version running with the inf change and it works fine but it gets annoying having to accept every time I insert a usb device and have to click continue anyway. If this will resolve this issue while still letting me use the bootable usb I would really like to use it. Thanks in advance. This post has been edited by 2kx2: Jan 3 2009, 02:52 AM |
|
|
|
Jan 3 2009, 03:38 AM
Post
#12
|
|
|
Member ![]() ![]() Group: Members Posts: 10 Joined: 18-March 08 Member No.: 35,571 |
I tried this and when I ran the bat file it displayed the correct drive for where the install was located. It completed the backup of the registry, then it ran into an error and displayed that access is denied over and over again. Any ideas on why this is failing. It says that the current control set is currentcontrol000 before it begins to error. I have a version running with the inf change and it works fine but it gets annoying having to accept every time I insert a usb device and have to click continue anyway. If this will resolve this issue while still letting me use the bootable usb I would really like to use it. Thanks in advance. did you run usb_boot.bat on your USB windows? If you want to update your current USB windows, simply create service for USB_BOOT.exe (copy it to system32) Install with these commands: CODE sc create "USBBOOT" binpath= C:\WINDOWS\System32\usb_boot.exe start= auto sc start "USBBOOT" and restore your .inf files from original CD. Should works. This post has been edited by marv: Jan 3 2009, 03:50 AM |
|
|
|
Jan 3 2009, 10:59 AM
Post
#13
|
|
|
Newbie ![]() Group: Members Posts: 9 Joined: 2-January 09 Member No.: 44,364 |
Marv, I haven't tried it on my current XP USB.
Where do I need to do the following and how do I do it? CODE sc create "USBBOOT" binpath= C:\WINDOWS\System32\usb_boot.exe start= auto sc start "USBBOOT" I didn't know if I could simply copy the usb_boot.exe to system32 and run the executable. Thanks |
|
|
|
Jan 3 2009, 01:02 PM
Post
#14
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,257 Joined: 31-October 03 Member No.: 2,304 |
|
|
|
|
Jan 3 2009, 05:48 PM
Post
#15
|
|
|
Newbie ![]() Group: Members Posts: 9 Joined: 2-January 09 Member No.: 44,364 |
When I enter the sc start "USBBOOT" I get an error
[SC] StartService: OpenService FAILED 1060: The specified service dows not exist as an installed service. |
|
|
|
Jan 3 2009, 06:10 PM
Post
#16
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,257 Joined: 31-October 03 Member No.: 2,304 |
Did you copy file usb_boot.exe first?
Did first line process without error? Just reboot. Open taks manager: is usb_boot loaded? |
|
|
|
Jan 3 2009, 06:33 PM
Post
#17
|
|
|
Newbie ![]() Group: Members Posts: 9 Joined: 2-January 09 Member No.: 44,364 |
Did you copy file usb_boot.exe first? Did first line process without error? Just reboot. Open taks manager: is usb_boot loaded? Copied it over. When I ran the first line it gave me the options and syntax options. usb_boot isn't running either. This post has been edited by 2kx2: Jan 3 2009, 06:34 PM |
|
|
|
Jan 3 2009, 06:53 PM
Post
#18
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 251 Joined: 11-July 07 Member No.: 28,859 |
If you cut & pasted the lines as posted I doubt they will work. They need to be
CODE sc create "USBBOOT" binpath=C:\WINDOWS\System32\usb_boot.exe start=auto sc start "USBBOOT" not CODE sc create "USBBOOT" binpath= C:\WINDOWS\System32\usb_boot.exe start= auto sc start "USBBOOT" No spaces after the "=" signs. |
|
|
|
Jan 3 2009, 06:58 PM
Post
#19
|
|
|
Newbie ![]() Group: Members Posts: 9 Joined: 2-January 09 Member No.: 44,364 |
If this does work how do I replace the inf files with the correct ones from the windows xp cd?
|
|
|
|
Jan 4 2009, 04:00 PM
Post
#20
|
|
|
Member ![]() ![]() Group: Members Posts: 10 Joined: 18-March 08 Member No.: 35,571 |
there must be space " " after "=" signs. see "sc create /?" for more informations.
If you would like to remove service and install new one, simply CODE sc stop "USBBOOT" sc delete "USBBOOT" and remove usb_boot.exe. |
|
|
|
![]() ![]() |
| Lo-Fi Version | Time is now: 9th September 2010 - 02:22 AM |