Jump to content


  • Posts

  • Joined

  • Last visited

  • Donations


About WreX

WreX's Achievements



  1. You don't need to specify the partition for NTLDR, C:\BOOT.INI determines what partition XP will boot from. I use the command "bcdedit -set {ntldr} device boot".
  2. My only solution was to run a batch file during the first boot and login after SysPrep to reconfigure my BCD entry. I decided on a static GUID so I wouldn't have to keep track of dynamic ones. Here's what I run from the batch file to re-install my entry: bcdedit -set {ramdiskoptions} ramdisksdidevice partition=C: bcdedit -set {ramdiskoptions} ramdisksdipath \BOOT\BOOT.sdi bcdedit -set {00000000-0000-0000-0000-000000000001} device ramdisk=[C:]\WINPE\WINPE.WIM,{ramdiskoptions} bcdedit -set {00000000-0000-0000-0000-000000000001} path \WINDOWS\SYSTEM32\BOOT\WINLOAD.EXE bcdedit -set {00000000-0000-0000-0000-000000000001} osdevice ramdisk=[C:]\WINPE\WINPE.WIM,{ramdiskoptions} bcdedit -set {00000000-0000-0000-0000-000000000001} systemroot \WINDOWS bcdedit -set {00000000-0000-0000-0000-000000000001} winpe yes bcdedit -set {00000000-0000-0000-0000-000000000001} detecthal yes bcdedit -set {00000000-0000-0000-0000-000000000001} advancedoptions no bcdedit -displayorder {00000000-0000-0000-0000-000000000001} -addlast It leaves my boot option in a bad state for one boot, but the user isn't present to do anything at that point, so fixing it on the first boot wasn't a problem.
  3. Does your USB key have the file \ISO\boot\bootfix.bin? That's what's used on CDs for the "Press any key..." message.
  4. My post here might help. You can just put the WIM file you have in your \ISO\sources\ folder on the hard drive and use the Vista Boot Loader configured with bcdedit to boot it. I have my WIM file sitting on C: and XP on D: (but only boot.ini is involved with that). The bcdedit commands in my post show how to set it up that way. You could have both the WIM and your OS on C: as long as boot.ini is pointing at the right location for your OS.
  5. It sounds more like your boot.ini file is not pointing at the correct location for your recovery partition.
  6. I've had that happen on occasion. I redirect the output from my diskpart commands to log files and when that happened I think it said the disk wasn't ready so I added routines to loop waiting for disk readiness to be reported in WMI.
  7. The registry error at that first boot usually means the partition that you installed the image on was not formatted before the image is installed. I've seen that a handful of times. I don't have any experience with setres or using winpeshl.ini, but you don't need to use MSHTA.EXE to launch an HTA file from a batch file like startnet.cmd, PE will launch it by association to the full path if you just execute the HTA file name.
  8. Why do you want to change the label of the volume? What does it affect?
  9. If you know the diskpart commands you're going to run, I suggest the following: Sub RunFull Set objShell = CreateObject("WScript.Shell") cmd = "%comspec% /c diskpart /s X:\windows\system32\full_diskpart.txt" objShell.Run cmd,0,1 ' Run the command in a hidden window and wait for a return cmd = "%comspec% /c imagex /apply c:\sp1.wim 1 d:\" objShell.Run cmd,0,1 valAnswer = msgbox("Recovery Complete. Would you like to Restart now?",vbYesNo,"Restart now?") If valAnswer = vbYes Then cmd = "wpeutil reboot" objShell.Run cmd,0,1 End If End Sub
  10. I just replied to that thread you linked for the card reader. Maybe some of that code would be useful to you.
  11. Whenever I boot into PE from CD or locally I run two batch files via startnet.cmd, so I'm not sure if this will help when booted from a USB disk. The first changes the CD / DVD drive that has the bootable PE CD (label "CD_ROM") to K:, the second checks for C:, D:, and E: (the only hard drive partitions I care about) to be on Disk 0 and changes them to P:, Q:, and / or R: if they're not. Changes the CD / DVD drive with the bootable PE CD to K: @echo off echo list volume > X:\ListCD.txt FOR /F "tokens=2,4" %%i IN ('diskpart /s X:\ListCD.txt') DO @IF /I %%j == CD_ROM SET CDROMVOL=%%i IF DEFINED CDROMVOL echo select volume %CDROMVOL% > X:\ChangeCD.txt IF DEFINED CDROMVOL echo assign letter=K: >> X:\ChangeCD.txt IF DEFINED CDROMVOL diskpart /s X:\ChangeCD.txt Changes C:, D:, and / or E: to P:, Q:, and / or R: if not on Disk 0 @echo off echo list volume > X:\ListVol.txt diskpart /s X:\ListVol.txt > X:\ListVol.dat FOR /F "tokens=2,3" %%i IN (X:\ListVol.dat) DO @IF /I %%j==C SET CVOL=%%i FOR /F "tokens=2,3" %%i IN (X:\ListVol.dat) DO @IF /I %%j==D SET DVOL=%%i FOR /F "tokens=2,3" %%i IN (X:\ListVol.dat) DO @IF /I %%j==E SET EVOL=%%i IF DEFINED CVOL goto FINDCVOL IF DEFINED DVOL goto FINDDVOL IF DEFINED EVOL goto FINDEVOL goto DONE :FINDCVOL echo select vol %CVOL% > X:\CVOL.txt echo detail vol >> X:\CVOL.txt diskpart /s X:\CVOL.txt > X:\CVOL.dat FOR /F "tokens=2,3" %%i IN (X:\CVOL.dat) DO @IF /I %%j==Online SET CDISK=%%i FOR /F "tokens=2-4" %%i IN (X:\CVOL.dat) DO @IF /I %%j.%%k==No.Media SET CDISK=%%i IF DEFINED CDISK goto CHANGECVOL IF DEFINED DVOL goto FINDDVOL IF DEFINED EVOL goto FINDEVOL goto DONE :CHANGECVOL echo select vol %CVOL% > X:\CFIX.txt echo assign letter=P >> X:\CFIX.txt diskpart /s X:\CFIX.txt IF DEFINED DVOL goto FINDDVOL goto DONE :FINDDVOL echo select vol %DVOL% > X:\DVOL.txt echo detail vol >> X:\DVOL.txt diskpart /s X:\DVOL.txt > X:\DVOL.dat FOR /F "tokens=2,3" %%i IN (X:\DVOL.dat) DO @IF /I %%j==Online SET DDISK=%%i FOR /F "tokens=2-4" %%i IN (X:\DVOL.dat) DO @IF /I %%j.%%k==No.Media SET DDISK=%%i IF DEFINED DDISK goto CHANGEDVOL IF DEFINED EVOL goto FINDEVOL goto DONE :CHANGEDVOL echo select vol %DVOL% > X:\DFIX.txt echo assign letter=Q >> X:\DFIX.txt diskpart /s X:\DFIX.txt IF DEFINED EVOL goto FINDEVOL goto DONE :FINDEVOL echo select vol %EVOL% > X:\EVOL.txt echo detail vol >> X:\EVOL.txt diskpart /s X:\EVOL.txt > X:\EVOL.dat FOR /F "tokens=2,3" %%i IN (X:\EVOL.dat) DO @IF /I %%j==Online SET EDISK=%%i FOR /F "tokens=2-4" %%i IN (X:\EVOL.dat) DO @IF /I %%j.%%k==No.Media SET EDISK=%%i IF DEFINED EDISK goto CHANGEEVOL goto DONE :CHANGEEVOL echo select vol %EVOL% > X:\EFIX.txt echo assign letter=R >> X:\EFIX.txt diskpart /s X:\EFIX.txt :DONE If you want to use it you can mess around with the commands while in PE to see for yourself what's being parsed from the diskpart commands. In the second script, the line that can have the "Online" or "No Media" values will have "* Disk 0" at the beginning if it's on Disk 0, but no * if it's not. If it's not Disk 0, the 2nd token would be the disk #, and the third "Online" or the third and fourth "No Media". If a disk # is found, the volume number is used to change the drive letter. I mainly had to do this because built-in storage card readers were using drive letters I needed if the disk was empty.
  12. How are you launching these other HTAs? A shell object.run command? If so, make sure the first parameter isn't 0 or the window will be hidden (ex. objShell.Run cmd, 0, 0) Are you running them by just using the command "FILENAME.HTA" or are you using "mshta.exe FILENAME.HTA"? Are you putting a "%comspec% /c" in front of it? Is this a pop-up box or within the HTA's HTML? If it's in the HTML you should be able to use a div or span area and just replace its contents when you launch your cmd.exe. This should be easy enough to fix with something like valAnswer = msgbox("Do you really want to reboot now?", vbYesNo,"Reboot?")...if valAnswer=vbYes...if valAnswer=vbNo
  13. Just to start with the obvious, do you have enough free space on the drive you're trying to mount the image on? Does it hit a certain percentage every time it stops? Does it even start the mount process? Does it behave the same on different PCs?
  14. Have you tried flashing the BIOS to 2008.03.28? This thread on the HP ITRC forums sounds like it dealt with your issue.
  15. Nope, everything I tested on had FAT32. Our old imaging system is DOS-based so they couldn't be NTFS without a conversion.

  • Create New...