Help - Search - Members - Calendar
Full Version: [SOLVED] Install Multiple XP/Vista/PE/2003 from USB
MSFN Forums > Member Contributed Projects > Install XP from USB
Pages: 1, 2

   
Google Internet Forums Unattended CD/DVD Guide
andy_le2k
This post has evolved quite a bit since I started out on my quest to boot from a single USB hard drive which will then be able to launch every single OS install as well as every diagnostic tool from it as well. So below I will list the methods I use to get my USB hard drive working, of course you don't have to follow this but it's here as a guide.

Thanks:
Without these guys this would not have been possible!
  • wimb
  • cdob
  • jaclaz
  • ilko_t

AIM:
To be able to install multiple OS installs from the single USB hard drive

Software needed:
wimb's usb_multiboot - check the stickies in this forum for the download details.
a hex editor
WAIK (if you want to have multiple Vista sources)
a DOS menu program or an autoplay creator (for multiple Vista)
OS/TOOLS Sources

Hardware:
USB Hard drive preferably > 20GB

Outline:
Use wimb's usb_multiboot to create XP sources as well as adding the boot sector onto the hard drive and load it with NTLDR.

NTLDR uses boot.ini which then launches grub4dos automatically
Reason for not using boot.ini is because grub4dos is superior in handling and loading bootloaders whereas boot.ini needs boot sectors which will cut out one extra step. Grub4dos has extra functionality which we can add to later such as emulating virtual hard disks and fdd's, it can load Vista's BOOTMGR directly and also its menu is also better to look at newwink.gif
Reason why I personally did not load grub4dos's bootsector directly to the hard drive but went through the trouble of using NTLDR (boot.ini) then loading grub4dos is because I already have grub4dos installed on my other hard drive and grub4dos's bootsector looks for the file "grldr" automatically which is already present on my other hard drive so it might load my permanent hard drive instead of my USB. So I have renamed and hex edited the grldr on the USB drive to look for "brldr" and set boot.ini to load brldr instead. If you do not have this dillema, feel free to use grub4dos's boot sector installer if you wish to cut out the extra step of loading NTLDR then grub4dos.
Currently working on:
  • [SOLVED]Trying to get multiple versions of Windows 2003 to co-exist on the USB hard drive.


---------------
Multiple PE
---------------
This applies to anything that uses WINPE1 (Windows FLP install, BartPE, ERD Commander, etc)
As PE was initially intended to be run off a CD the original structure for them would be inside the [i386] folder.
If your PE came from a USB source it would be in the folder [minint].
It's not important which folder it is in because we will rename them once it is copied to the USB hard drive anyways. Make sure you copy winbom.ini to the USB root as well.

The convention you should stick to is:
[mini01]
[mini02]
[mini03]
[minixx]

So once we have the folders copied to our hard drive and renamed appropriately we will need to also copy the setupldr.bin file from the [minixx] folder to the root of the USB and rename them according to this convention:
peld1
peld2
peld3
peldx

Now you will need to change the first occurrence of txtsetup.sif in PELDx to notsetup.sif.

CODE
gsar -sBT:x00:x00:x00\:x00:x00:x00txtsetup -rBT:x00:x00:x00\:x00:x00:x00notsetup %USB%:\PELDx -b -o


Change all occurances of minint to minixx.

CODE
gsar -i -o -s\minint -r\minixx peldx


Notes:

WinFLP requires all additional folders on the CD to be on the USB root, such as the [Setup] which houses the flp.wim which setup requires. So as a rule of thumb: copy all folders from the source CD for WinFLP, ERD Commander and BartPE to the root of USB drive and rename the i386 folder to minixx.

WinFLP's setupldr.bin has a checksum protection which will error if you hex edit it, I suggest you use BartPE's one.

---------------
Multiple Vista
----------------
Ok this is not much of an automated process but it is somewhat more streamlined than my original concept.

Dump all your Vista sources onto the USB hard drive (11 gigs for me - x86 + x64 Vista + x86 + x64 Server 2008) - Best if they are in a separate folder... tree view for mine is below

USB
|
|----->BOOTMGR
|
|----->[Boot]
| |
| |--->Modified BCD store
|
|----->[SOURCES]
| |
| |--->x86.wim
|
|----->[Vista]
|
|----->[Vistax86]
| |
| |--->[SOURCES]
|
|
|----->[Vistax64]
| |
| |--->[SOURCES]
|
|
|----->[Serverx86]
| |
| |--->[SOURCES]
|
|
|----->[Serverx64]
|--->[SOURCES]


First thing is to copy the BOOTMGR file along with the [SOURCES] and [BOOT] folders from any Vista source to the root of the USB hard drive. You can delete the Install.wim from the [SOURCES] folder.

Now what you will need to do is create a new Windows PE 2.0 (x86) from WAIK - I won't go into details about that here but it's very simple. Reason we use the x86 version of WINPE2 is because the 32bit version of WINPE2 can launch the setup of both 64 and 32 versions (with some tweaking as discussed below).

Mount your WINPE2 image on a local hard drive folder with read/write and you will need to modify your WINPE2 with:

Create a text file in [mounted_wim_folder]\Windows\System32\ and name it: winpeshl.ini
Edit the winpeshl.ini with:
CODE
[LaunchApp]
   AppPath=%SYSTEMDRIVE%\menu.cmd

What the winpeshl.ini file will do is start up WINPE2 and run whatever your AppPath program is as a shell. So you can make a simple DOS batch menu for you to select whichever Vista/Server 2008 you want to install. What I did was made an autorun program using Autoplay Studio which will prompt me with 4 options and whatever I click on, it will launch a batch file which will run the setup for that OS. Two important things you need to keep in mind is:

1) You will need to find the USB hard drive before you can launch the setup. So you may want to add this line to your batch files:

CODE
FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\usb_tag_file SET USB=%%i:\


You can then launch the setup by adding this line to your batch file:

CODE
%USB%\Vista\Vistax86\sources\setup.exe


2) You cannot load a x64 setup from a x86 WINPE2, the workaround for this is to copy contents of the SOURCES folder (including Setup.exe but excluding boot.wim and install.wim) from the x86 version of the Vista source. **IMPORTANT** do not overwrite the install.wim in the destination folder or you will just be installing the x86 version!

Once you have modified the WINPE2, make sure you commit the changes. If you have more than one WINPE2 on your USB, you will then need to edit the bcd store inside the BOOT folder on the root of your USB using bcdedit.exe - if you don't have any other WINPE2, you can just copy the BOOT and SOURCES folders and the BOOTMGR file from any Vista source to the <ROOT> of the USB hard drive, then name your newly created WINPE2 as boot.wim and copy it over to the SOURCES folder and overwrite the original.

So now, from your USB's grub4dos menu, load the bootmgr on the root of your USB it will then load the bcd store. If you have more than one WINPE2 it will load the BOOTMGR menu, if not it will load into the WINPE2 that you have created. Once that WINPE2 loads, it should load your batch menu or VBS or if you really want to be fancy... an autoplay application.




------------------------
Multiple Windows 2003
------------------------

The process of getting multiple sources of Windows 2003 onto your USB hard drive is pretty much the same as making multiple sources of XP with a few more extra steps.

First, you will need these files:

Cracked setupldr.bin : http://www.msfn.org/board/post-a9193-crack...PLDR-1-.BIN.zip
ModifyPE : http://unattended.msfn.org/files/global/MODIFYPE.EXE

Steps:

  1. Copy and replace the cracked setupldr.bin to the i386 folder of your source before you use usb_multiboot.
  2. Create the source using usb_multiboot, for this example we will assume the source folders are [$WIN_xx$.~LS] and [$WIN_xx$.~BT]
  3. Goto [$WIN_xx$.~BT] and you should find both setupdd.sys and setupdd.sy_ Delete setupdd.sy_ and apply the following to setupdd.sys
    CODE
    modifype.exe setupdd.sys -c
  4. CODE
    makecab setupdd.sys

I have not yet tested putting a checksum on setupldr.bin but I would assume this method will work as well. So if you don't want to download the cracked setupldr.bin you may wish to try the following but it may not work.


CODE
modifype.exe XATxx -c

and
CODE
modifype.exe XPSxx -c



----------------
Multiple XP
----------------
This has changed a lot since wimb updated the usb_multiboot to automatically do this, so basically, run the usb_multiboot program twice (or however many times you want) making sure you carefully select the settings again for each time you run it.

Below are the original instructions for historic and nostalgic reasons.

Thanks to everybody who made this possible for me - especially these superstars: jaclaz, ilko_t, cdob and wimb

I just want to list the steps I took below, I can't promise that it will work for all of you but it worked for me.

01 - Make XP1 Source using usb_multiboot.cmd

02 - Rename $WIN_NT$.~BS and $WIN_NT$.~LS to $WIN_01$.~BS and $WIN_01$.~LS

03 - Rename SETUPLDR.BIN to XPS01 and rename TXTSETUP.SIF to TXTSET01.SIF

04 - Make XP2 Source using usb_multiboot.cmd

05 - Rename $WIN_NT$.~BS and $WIN_NT$.~LS to $WIN_02$.~BS and $WIN_02$.~LS

06 - Rename SETUPLDR.BIN to XPS02 and rename TXTSETUP.SIF to TXTSET02.SIF

07 - HEX Edit XPS01 replace every reference of "$WIN_NT" to "$WIN_01"
- HEX Edit XPS01 replace every reference of "txtsetup" to "txtset01"

08 - HEX Edit XPS02 replace every reference of "$WIN_NT" to "$WIN_02"
- HEX Edit XPS02 replace every reference of "txtsetup" to "txtset02"

09 - EXPAND setupdd.sy_ to setupdd.sys located in your ~BS folders
- For $WIN_01$.~BT\setupdd.sys run "GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x001:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys"
- For $WIN_02$.~BT\setupdd.sys run "GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x002:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys"

10 - MAKECAB setupdd.sys for each of the ~BS folders

11 - Use MakeBS3.cmd (located in your usb_multiboot package under \makebt)
"MakeBS3.cmd [USB_DRIVE_LETTER]:\XPS01" and
"MakeBS3.cmd [USB_DRIVE_LETTER]:\XPS02"
- This will make 2 boot sector files in your [USB_DRIVE_LETTER]:\btsec folder named
XPS01.bs and XPS02.bs

12 - EDIT boot.ini and add the lines "C:\btsec\XPS01.bs" and "C:\btsec\XPS02.bs"


13 - In \$win_01$.~ls\I386\ren_fold.cmd change

SET TAGFILE=\$WIN_NT$.~BT

ren %USBDRIVE%\txtsetup.sif txtsetup.bak
ren %USBDRIVE%\$WIN_NT$.~BT WIN_NT.BT
ren %USBDRIVE%\$WIN_NT$.~LS WIN_NT.LS


to

SET TAGFILE=\$WIN_01$.~BT

ren %USBDRIVE%\txtset01.sif txtset01.bak
ren %USBDRIVE%\$WIN_01$.~BT WIN_01.BT
ren %USBDRIVE%\$WIN_01$.~LS WIN_01.LS


In \$win_01$.~ls\I386\undoren.cmd change

SET TAGFILE=\$WIN_NT$.~BT

ren %USBDRIVE%\txtsetup.bak txtsetup.sif
ren %USBDRIVE%\WIN_NT.BT $WIN_NT$.~BT
ren %USBDRIVE%\WIN_NT.LS $WIN_NT$.~LS

to

SET TAGFILE=\$WIN_01$.~BT

ren %USBDRIVE%\txtset01.bak txtset01.sif
ren %USBDRIVE%\WIN_01.BT $WIN_01$.~BT
ren %USBDRIVE%\WIN_01.LS $WIN_01$.~LS

14 - Repeat the above for the batch files in \$win_02$.~ls\ making sure you replace 01 with 02

0
jaclaz
I already replied you on the other thread:
http://www.msfn.org/board/Install-Multiple...ve-t114523.html
there is NO need to DOUBLE POST.
Read Rules:
http://www.msfn.org/board/Forum-Rules-Upda...ead-t18408.html
QUOTE
2.a Use some common sense. Don't post your question under multiple topics. Think before posting and choose the right topic for you question or answer. When posting, have something to say, not just "My First post!" or "Cool site!!!" We sort of have the idea by now :-).


(bolding is mine)

I pointed you here to make you read what is already done, and to give you a starting point, I don't think anyone is going to do your homework, as said, start with the known-to-be-working method:
http://www.msfn.org/board/install-XP-USB-t111406.html
http://www.911cd.net/forums//index.php?showtopic=20089
(just one flavour of XP install), add a PE, when you have ONE install working, try with a second one.

Always do one thing at the time, otherways it will be impossible to troubleshoot the problems.


jaclaz
andy_le2k
Thanks again for the links.

Been trying so hard to get this to work but no hope.

First when I tried the usb_multiboot6 program it works perfectly when installing XP but the problem now is that I can only have 1 xp source. The program makes hard drive setup folders $WIN_NT$.~BT and $WIN_NT$.~LS. This makes it very difficult to add a second source as they would need to replace the default folders. I also tried renaming these folders as well as the txtsetup.sif and bootldr files and replace them with another source but that didn't work either.

Grub4dos:
I kept getting the txtsetup.sif corrupted, status 14 error whenever it loads a hex edited \PRO1\setupldr.bin

Heaps of thanks to jaclaz for letting me learn so much and actually getting at least one xp to setup from usb hard drive. I'm very sorry for double posting just thought this project of mine should be in this forum rather than the other.
wimb
QUOTE (andy_le2k @ Mar 25 2008, 04:23 PM) *
Vista source folders can't be renamed or moved to subfolders and as such only one Vista edition can be present on the hard drive.

Install of Vista from Folder on NTFS USB-stick was realised as described here
http://www.msfn.org/board/vista-t114092.html&st=6

QUOTE
Boot in this case via boot.ini Menu > GRUB4DOS Menu > Select Windows PE 2.0
Then the Windows Boot Manager Menu Appears and one can launch Windows PE 2.0
In Win PE 2.0 Command Window > Select USB-Drive and Folder with Vista Setup > Run Vista Setup


It will be possible to combine XP , Vista x86 and Vista x64 for Install from USB.
Different versions of XP cannot be combined on one stick,
but it is very convenient to use different sticks for this purpose.
jaclaz
Generally speaking, two different installs of XP use, say, 95% of the same files.

Now, if you use the normal USBmultiboot setup, and image/backup the resulting install directories, then re-use USBmultiboot for the different install, you can make a compare/diff between the two copies.

Nothing prevents you from having two directories anywhere on the stick, like:
\setup01
and
\setup02

containing the ONLY the files that change between the two versions of setup.

Then you boot from the PE on the stick (or also from a DOS flavour) and simply copy the files in one of the two setup directories overwriting those already in $WIN_NT$.~BT or $WIN_NT$.~LS, writing a simple batch for doing the above should be trivial.

Sure, you cannot choose at boot whether you instal setup01 or setup02, but making the switch should not be difficult, it's just a reboot and a few xcopy/robocopy commands away. newwink.gif

Strings $WIN_NT$.~BT and $WIN_NT$.~LS are hardcoded in SETUPLDR.BIN, though I don't remember anyone previously experimenting with this, it should be perfectly possible to hexedit SETUPLDR.BIN jsut like we do for \I386 or \minint. unsure.gif

jaclaz
wimb
QUOTE (jaclaz @ Mar 26 2008, 06:17 PM) *
Strings $WIN_NT$.~BT and $WIN_NT$.~LS are hardcoded in SETUPLDR.BIN, though I don't remember anyone previously experimenting with this, it should be perfectly possible to hexedit SETUPLDR.BIN jsut like we do for \I386 or \minint. unsure.gif

Interesting ideas smile.gif

String $WIN_NT$.~BT occurs twice in SETUPLDR.BIN but $WIN_NT$.~LS is not found there.
TXTSETUP.SIF does NOT contain string $WIN_NT$.~LS and SetupSourcePath = "\"
It seems that hexediting will not bring the desired solution .... newwink.gif

May be a second stick with other XP version is more convenient newwink.gif
ilko_t
There is an old MS article for NT, which gives some clues, I have no idea if this could be used for 2000/XP/2003.
I did play with these settings in the past without much luck. Didn't test for this particular scenario.
http://support.microsoft.com/kb/150497

txtsetup.sif:
QUOTE
[SetupData]
;
; SetupSourceDevice is optional and specifies the nt device path
; of the device to be used as the setup source. This overrides
; the CD-ROM or winnt local source.
;
;***remove the semicolon from the following line and make sure it
;***references the physical location of the system files.
;***In the example this will be partition1 since C: is the first
;*** partition on the disk.
;
SetupSourceDevice = \device\harddisk0\partition1
;
; SetupSourcePath specifies the path relative to the source device
; where the setup source tree is to be found.
; All media descriptors are relative to this.
;
;*** Change the "SetupSourcePath" line to the path of your system
;*** repair files.
;*** In the example, I would change the variable to equal \repair.
;
SetupSourcePath=\repair
MajorVersion = 4
MinorVersion = 0
DefaultPath=\WINNT
OsLoadOptions = "/nodebug"
cdob
First congratulations to new section at MSFN.

If I recall correctly from 2006 http://www.msfn.org/board/-t81788.html&...st&p=584906

Txtsetup.sif [SetupData] SetupSourcePath is ignored at USB.

Using a different directory set:
change setupldr.bin and setupdd.sys.
ilko_t
Thanks cdob, very useful info.

Have you tested with this line included?

SetupSourceDevice = \device\harddisk0\partition1

From the above article
QUOTE
; SetupSourceDevice is optional and specifies the nt device path
; of the device to be used as the setup source. This overrides
; the CD-ROM or winnt local source.


edit: Never mind, seems I did:

http://www.msfn.org/board/boot-install-USB...730#entry684730
Memory is getting shorter and shorter, I should start again taking the medicine laugh.gif
threeply
QUOTE (wimb @ Mar 26 2008, 07:56 AM) *
QUOTE (andy_le2k @ Mar 25 2008, 04:23 PM) *
Vista source folders can't be renamed or moved to subfolders and as such only one Vista edition can be present on the hard drive.

Install of Vista from Folder on NTFS USB-stick was realised as described here
http://www.msfn.org/board/vista-t114092.html&st=6

QUOTE
Boot in this case via boot.ini Menu > GRUB4DOS Menu > Select Windows PE 2.0
Then the Windows Boot Manager Menu Appears and one can launch Windows PE 2.0
In Win PE 2.0 Command Window > Select USB-Drive and Folder with Vista Setup > Run Vista Setup


It will be possible to combine XP , Vista x86 and Vista x64 for Install from USB.
Different versions of XP cannot be combined on one stick,
but it is very convenient to use different sticks for this purpose.


Unless the stick is multipartitioned then different versions can be combined but of course this is only theoretical.

Automating the process is kinda of non-trivial, we need a utility something like vlite/nlite for multi-install so the images can be created and copied over to a stick.

The requirement would go something like this:

1) Select the Destination type (usb-hd/usb-stick)
2) Select the source OS (multi-checkboxes)
3) Determine if Destination space is sufficent
4) Partition the Drive
5) Copy over the Source Files
6) Setup the boot menu and bcd store
7) Give final directions on reboot



andy_le2k
QUOTE
Then you boot from the PE on the stick (or also from a DOS flavour) and simply copy the files in one of the two setup directories overwriting those already in $WIN_NT$.~BT or $WIN_NT$.~LS, writing a simple batch for doing the above should be trivial.


This is what I did, I kind of gave up on the idea of a smooth menu where you can install multiple flavours on the fly. But this method still does not work!

What I did:

I renamed the <$WIN_NT$.~BT> and <$WIN_NT$.~LS> folders as well as the txtsetup.sif and setupldr.bin on the root to <SETUP01-BT>, <SETUP-01-LS>, txtsetup01.sif and setup01ldr.bin.

I then used multibootxp6.cmd to add the other xp setup to the hard drive.

Everything seems fine but during the txtsetup phase it fails to format or gives an error about the txtsetup.sif file being missing or corrupted.

QUOTE
May be a second stick with other XP version is more convenient


The whole point of my project is to have ALL the OS that I frequently need to install on one usb hdd to make things more convenient.


Thanks everybody so much for the replies and ideas this is very facinating as it is much as it is annoying newwink.gif

cdob
QUOTE (andy_le2k @ Mar 26 2008, 06:41 PM) *
but during the txtsetup phase it fails to format or gives an error about the txtsetup.sif file being missing or corrupted.

Did you edited setupldr.bin? Change setupldr.bin, apply renamed names.
And edit setupdd.sys.
andy_le2k
QUOTE (cdob @ Mar 27 2008, 06:19 AM) *
QUOTE (andy_le2k @ Mar 26 2008, 06:41 PM) *
but during the txtsetup phase it fails to format or gives an error about the txtsetup.sif file being missing or corrupted.

Did you edited setupldr.bin? Change setupldr.bin, apply renamed names.
And edit setupdd.sys.


Yep, I went to great lengths to make sure everything is renamed, backed up then made another source, then to restore the previous source i renamed and backed up everything again!

Every single file gets renamed/replaced but txtsetup will still give me errors. I will try to get screenshots of these errors and post them here.
ilko_t
You are installing from USB hard disk, right?
Did you select for disk type USB hard disk in USB_multibot6.cmd?
andyle2k
QUOTE
You are installing from USB hard disk, right?
Did you select for disk type USB hard disk in USB_multibot6.cmd?


yep!
jaclaz
QUOTE (andy_le2k)
This is what I did, I kind of gave up on the idea of a smooth menu where you can install multiple flavours on the fly. But this method still does not work!


For the record, what I suggested lately was NOT to rename ANYTHING:
QUOTE (jaclaz)
Generally speaking, two different installs of XP use, say, 95% of the same files.

Now, if you use the normal USBmultiboot setup, and image/backup the resulting install directories, then re-use USBmultiboot for the different install, you can make a compare/diff between the two copies.

Nothing prevents you from having two directories anywhere on the stick, like:
\setup01
and
\setup02

containing the ONLY the files that change between the two versions of setup.

Then you boot from the PE on the stick (or also from a DOS flavour) and simply copy the files in one of the two setup directories overwriting those already in $WIN_NT$.~BT or $WIN_NT$.~LS, writing a simple batch for doing the above should be trivial.


Sure the above is not the "best" way, but "A bird in the hand is worth two in the bush" newwink.gif

Another possibility, that noone has fully explored AFAIK is method #2 in my post here:
http://www.msfn.org/board/Installing-Unatt...8.html&st=6

I am pretty sure that a very small PE build, probably in the 20 to 40 Mb range should be able to run correctly WINNT32, thus allowing a "real" Windows NT/2K/XP/2003 install from ANY source.

jaclaz
cdob
QUOTE (andy_le2k @ Mar 27 2008, 06:46 AM) *
Yep, I went to great lengths to make sure everything is renamed, backed up then made another source, then to restore the previous source i renamed and backed up everything again!

Every single file gets renamed/replaced but txtsetup will still give me errors.

I don't understand clearly: did you hexedited file setupldr.bin?

I get: given a USB hard disk:

File txtsetup.sif renamed to txtset01.sif
Folder $WIN_NT$.~BT renamed to $WIN_01$.~BT

setupldr.bin hexedited:
txtsetup.sif changed to txtset01.sif
$WIN_NT$.~BT changed to $WIN_01$.~BT

Setupldr.bin does boot.
Destination hard disk can be selected. Pressed F3 to cancel at this point.
andyle2k
Hex editing won't (or didn't) work because to I think hard drive installations look specifically for the $WIN_NT$.~BT and $WIN_NT$.~LS folders.

What I did was rename those folders for each flavour of XP so if I wanted to change the flavour of XP I would of had to boot into PE or use another comp to rename the current $WIN_NT$.~BT and $WIN_NT$.~LS folders to something else then rename the desired XP source and boot folders into $WIN_NT$.~BT and $WIN_NT$.~LS. I went so far as to rename every single file from the root of the hard drive as well (setupldr.bin, txtsetup.sif, ntldr and so forth).

So just to be completely clear:

- I use multibootxp6.cmd program.
- choose the first XP source
- choose my usb hdd destination
- copy the source and make the boot sectors.
- test with the hard drive and setup will work no problems
- then I would move everything on the hard drive to a different drive (backup)
- use multibootxp6.cmd again.
- choose the second XP source.
- copy the source files and make the boot sectors.
- test the bootable usb hard drive and setup will work again.
- I rename or move everything on the usb hard drive to a sub folder i.e. [XP2]
- I copy back the first XP source
- Boot up from the hdd is fine
- TXTSETUP stage is fine until it starts copying files or format stage which then errors, corrupted or missing files.
ilko_t
Just a quick check list- to have lets say XP1 and XP2
In root:
\$win_01$.~bt
\$win_01$.~ls

\$win_02$.~bt
\$win_02$.~ls
ntdetect.com
NTLDR
txtset01.sif
txtset02.sif


setupldr.b01
setupldr.b02
Both HEX edited to $win_01$.~bt and $win_02$.~bt and txtsetup.sif to txtset01.sif and txtset02.sif

SETUPLDR1.bs
SETUPLDR2.bs
Both HEX edited setupldr.bin to setupldr.b01 and setupldr.b02

boot.ini
CODE
[Boot Loader]
Timeout=10
Default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[Operating Systems]
C:\SETUPLDR1.bs="1. TXT Mode Setup Windows XP1, Do NOT unplug USB-Drive Until After First Logon"
C:\SETUPLDR2.bs="1. TXT Mode Setup Windows XP2, Do NOT unplug USB-Drive Until After First Logon"
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="2. GUI Mode Setup Windows XP + First Start XP" /FASTDETECT


In $win_01$.~bt setupdd.sy_ expanded and HEX edited $WIN_NT$ to $WIN_01$ and re-compressed ( necessary ? )
In $win_02$.~bt setupdd.sy_ expanded and HEX edited $WIN_NT$ to $WIN_02$ and re-compressed ( necessary ? )

Did you miss a step? Did I miss a step unsure.gif ?

ilko





andy_le2k
QUOTE
Both HEX edited to $win_01$.~bt and $win_02$.~bt and txtsetup.sif to txtset01.sif and txtset02.sif


How would setup know to load txtset01.sif an txtset02.sif?

Every other steps seems right and could possibly work. I think the best way is probably still to boot into PE and run winnt32!
ilko_t
I didn't get your question.
Txtsetup.sif is parsed by setupldr.bin. Hex edit all occurrences of txtsetup.sif to txtset01.sif and the latter is used. That's for setupldr.b01.
For setupldr.b02 use txtset02.sif.
Text mode Setup completes fine. GUI part to be tested. There is 1 occurrence in setupdd.sys, may have to be changed too.
PE and winnt32.exe have always been an option, mind you, for many users building PE is hard and unknown, they need just a single install off USB.

edit: GUI part worked just fine, no need to HEX edit setupdd.sys for txtsetup.sif.
Here is the step I forgot in the previous post:
In \$win_01$.~ls\I386\ren_fold.cmd change

CODE
ren %USBDRIVE%\txtsetup.sif txtsetup.bak
ren %USBDRIVE%\$WIN_NT$.~BT WIN_NT.BT
ren %USBDRIVE%\$WIN_NT$.~LS WIN_NT.LS


to

CODE
ren %USBDRIVE%\txtset01.sif txtset01.bak
ren %USBDRIVE%\$WIN_01$.~BT WIN_01.BT
ren %USBDRIVE%\$WIN_01$.~LS WIN_01.LS


In \$win_01$.~ls\I386\undoren.cmd change

CODE
ren %USBDRIVE%\txtsetup.bak txtsetup.sif
ren %USBDRIVE%\WIN_NT.BT $WIN_NT$.~BT
ren %USBDRIVE%\WIN_NT.LS $WIN_NT$.~LS


to

CODE
ren %USBDRIVE%\txtset01.bak txtset01.sif
ren %USBDRIVE%\WIN_01.BT $WIN_01$.~BT
ren %USBDRIVE%\WIN_01.LS $WIN_01$.~LS


Do the same for both files in $WIN_02$.~LS and use $WIN_02$.~*** and txtset02.***
andy_le2k
Thanks very much for your hard work ilko_t!! Very much appreciated it and I'm glad you got it working.

(Un)fortunately I have to go out with the misses now but would much rather stay in all night and get this to work for me too.

I'll give this a shot when I get home and hopefully I can share some of your success.

Thanks again.
jaclaz
After all I wasn't too far off the road. newwink.gif
QUOTE (jaclaz)
Strings $WIN_NT$.~BT and $WIN_NT$.~LS are hardcoded in SETUPLDR.BIN, though I don't remember anyone previously experimenting with this, it should be perfectly possible to hexedit SETUPLDR.BIN jsut like we do for \I386 or \minint.


QUOTE (ilko_t)
GUI part worked just fine, no need to HEX edit setupdd.sys for txtsetup.sif.


Very good! thumbup.gif

QUOTE (ilko_t)
PE and winnt32.exe have always been an option, mind you, for many users building PE is hard and unknown, they need just a single install off USB.


Yes, but since andy_le2k already has/wants to have a BartPE..... whistling.gif

But still noone has been documenting the minimal PE files needed to run successfully WINN32.... blink.gif

jaclaz
wimb
QUOTE (ilko_t @ Mar 28 2008, 06:27 AM) *
edit: GUI part worked just fine, no need to HEX edit setupdd.sys for txtsetup.sif.

Congratulations cdob and ilko_t with Multiple XP Install from USB thumbup.gif

All Information has been added to New Release of USB_MultiBoot7.zip
jaclaz
QUOTE (wimb)
Different versions of XP cannot be combined on one stick,
but it is very convenient to use different sticks for this purpose.
unsure.gif

QUOTE (wimb)
May be a second stick with other XP version is more convenient
blink.gif

QUOTE (wimb)
Congratulations cdob and ilko_t with Multiple XP Install from USB

All Information has been added to New Release of USB_MultiBoot7.zip
whistling.gif


Very good! smile.gif

Just think how much money people will save by avoiding to buy a second USB stick!

Another small victory against the ever increasing entropy. thumbup.gif


jaclaz
OldBuzzard
Am I to understand that I can have in install for XP Pro and install for XP x64 on one stick, and choose which one I want to install?

jaclaz
QUOTE (OldBuzzard @ Mar 28 2008, 06:10 PM) *
Am I to understand that I can have in install for XP Pro and install for XP x64 on one stick, and choose which one I want to install?


Not yet, x64 is not fully working, but ilko_t is working on it:
http://www.msfn.org/board/XP-x64-Install-t114022.html

Hopefully it will soon be possible. smile.gif

jaclaz
ilko_t
You should be able to to that, however, using x64 some of the compressed files will get deleted during Text mode. You will need after install to copy AMD64 and I386 folders from your source to ~LS folder, skipping existing files until workaround is found. KillCopy or Volkov Commander are handy for this task.

Note when using usb_multibootX.cmd- bootsectors to be HEX edited setupldr.b01 for multiple OS install are in \btsec on stick, NOT SETUPLDR1.bs and SETUPLDR2.bs in root.

QUOTE (andy_le2k @ Mar 28 2008, 06:49 AM) *
Thanks very much for your hard work ilko_t!! Very much appreciated it and I'm glad you got it working.
Credits should go to their place- cdob smile.gif
cdob
QUOTE (ilko_t @ Mar 28 2008, 12:27 AM) *
no need to HEX edit setupdd.sys for txtsetup.sif.
Thanks, that's better solution. Hexediting idea is outdated from 2006.

Just wondering: there are hard links at NTFS (USB) media
A duplicate file can be replaced by hard link.
example: two times 500 mb installation files maybe require 600 mb space.

And there is Duplicate File Hard Linker (DFHL) http://www.jensscheffler.de/dfhl_en.html
andyle2k
Hey guys,

I was just wondering if you guys had that time and effort, can you please write a simple step by step guide to get this to work for idiots like me who still can't?!

I'm getting stuck on how to get the boot sectors to load properly. What do you do to get the setupldr1.bs and setupldr2.bs? - SOLVED - use MakeBS3.cmd from the USB_Multiboot package

Exactly which files need to be hexed and renamed? The ones from the root or the ones inside $WIN_01~.BT or both? - Still a bit unsure about this, apparently you need to hexed setupdd.sys but even with that hexed txtsetup still gives me an error saying it cant find source folders.

And finally what about the .LS folder where the actual source is.. can you just leave it as $WIN_01~.LS or does need to be $WIN_NT~.LS in order for setup to work?

Thanks again.
wimb
QUOTE (andy_le2k @ Mar 25 2008, 04:23 PM) *
03 - Rename SETUPLDR.BIN to XPS01 and rename TXTSETUP.SIF to TXTSET01.SIF

07 - HEX Edit SETUPLDR1 replace every reference of "$WIN_NT" to "$WIN_01"
- HEX Edit SETUPLDR1 replace every reference of "txtsetup" to "txtset01"

Did you mean here XPS01 instead of SETUPLDR1
Same for index 2

QUOTE (andy_le2k @ Mar 25 2008, 04:23 PM) *
09 - EXPAND setupdd.sy_ to setupdd.sys located in your ~BS folders
- For $WIN_01$.~BT\setupdd.sys run "GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x001:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys"
- For $WIN_02$.~BT\setupdd.sys run "GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x002:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys"

In setupdd.sys there is no $WIN_NT.~LS string
Did you mean :x00B:x00T instead of :x00L:x00S

Your detailed description of post #1 corresponds to what ilko_t and cdob have given,
but unfortunately I was not able in all cases (3 attempts) to reach the GUI Mode of Setup.

TXT Mode Setup was running well, but TXT mode could not continue after the first question.
Setup cannot Find Install Files - Setup Cannot Continue - Message Occurs. So NOT SOLVED for me newwink.gif

@ilko_t Would it bepossible that a modified NTDETECT.COM bring the solution?
What kind of USB-Drive and Format did you use ?
I have tried USB-Harddisk with NTFS and FAT Format, and USB-stick with NTFS Format

wimb
ilko_t
Wimb, here is setupdd.sys from Tiny Hexer:


Yep, must be XPS01 instead of SETUPLDR1 if using NTFS. If it's FAT16/32 then setupldr.bin names should be used.
May be it's a good idea in next release to use only XPSTP, no matter what FS, also to copy only bootsectors and setupldr.bin for the chosen options as we discussed. I.e. BartPE not selected- do not copy PELDR and bootsector for it, same for DOS/Syslinux etc.

I used FAT16 and usb_prepare8, normal ntdetect.com, no need to HEX edit it. Strings replacements with gsar as more convenient.


ilko
wimb
Hi ilko,

In my setupdd.sys there is no $WIN_NT.~LS string,
but in yours I can see there is one.

My Source is XP SP2 NLD file 03-08-2004

Mystery SOLVED, I changed Search Settings to Yours and Now I found the String.

Search with: Unicode (little endian) and Ignore case

Thanks a lot newwink.gif
ilko_t
Did you select unicode? Without that, Tiny Hexer won't find the string.

Mine is from XP Pro SP2 Eng, setupdd.sys version 5.1.2600.2180 from 03-08-2004.
What do you have at that offset?
wimb
QUOTE (ilko_t @ Mar 29 2008, 07:04 PM) *
Did you select unicode? Without that, Tiny Hexer won't find the string.

Mine is from XP Pro SP2 Eng, setupdd.sys version 5.1.2600.2180 from 03-08-2004.
What do you have at that offset?

Unicode made the difference, Thanks

Will try again now.
wimb
Thx guys,

Multiple XP Install from USB SOLVED for me by ilko_t with TinyHexer ScreenShot and andy_le2k and cdob thumbup.gif
Install of XP from USB was now OK

My problem was that in TinyHexer I used wrong setting for search of $WIN_NT$.~LS string.
Now I know that I have to use Unicode (little endian) and Ignore case.

But it is much better to use GSAR for the search and replace, then there is no problem.

@andy_le2k Your GSAR Instruction is OK, no need to change newwink.gif

wimb
ilko_t
Good smile.gif

I'm still puzzled about this unicode thingie, why only ~LS string blink.gif
First time when thread was started I opened setupdd.sys in Tiny Hexer and searched for ~LS- not found. Who would guess to change to unicode...
Thanks cdob, brilliant find thumbup.gif
andy_le2k
QUOTE (wimb @ Mar 29 2008, 09:35 AM) *
QUOTE (andy_le2k @ Mar 25 2008, 04:23 PM) *
03 - Rename SETUPLDR.BIN to XPS01 and rename TXTSETUP.SIF to TXTSET01.SIF

07 - HEX Edit SETUPLDR1 replace every reference of "$WIN_NT" to "$WIN_01"
- HEX Edit SETUPLDR1 replace every reference of "txtsetup" to "txtset01"

Did you mean here XPS01 instead of SETUPLDR1
Same for index 2




Thanks for the pickup! Yes this is a mistake and I have edited on the first post. I initially named my setupldr files setupldr1 and setupldr2 but I think ntfs boot sectors needs to be 5 chars that is why the make boot batch file will not accept setupldr1 or setupldr2.

I'm glad you finally got it working. It feels really good to be able to accomplish something like this eh? Which is why I'm very thankful to everybody who made this possible.
jaclaz
Off Topic, but not much, there is still this question open:
http://www.msfn.org/board/Install-Vista-US...6.html&st=5

It's actually my fault, I completely forgot that, but since I will be prolly busy for the next couple of weeks, if there is any taker, I would be only too happy.... rolleyes.gif

jaclaz

wimb
I tried to use SETUPLDRBIN and SETUPLDR.BIN instead of NTLDR in NTFS BootSector File using the same
byte sequence for terminating the bootloader name, but booting did not occur. newwink.gif

So it seems to me that we have to live with the 5-letter limit of bootloader name in NTFS BootSector File.
Actually renaming SETUPLDR.BIN as XPSTP is OK and is used now for all FileSystems by USB_MultiBoot_8.cmd
in order to avoid confusion.

wimb
malinduta
I understood the whole process but I can`t understand what GSAR is replacing sad.gif
QUOTE
09 - EXPAND setupdd.sy_ to setupdd.sys located in your ~BS folders
- For $WIN_01$.~BT\setupdd.sys run "GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x001:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys"
- For $WIN_02$.~BT\setupdd.sys run "GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x002:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys"

I kindly ask you to give a more detalied explication.
Thank you smile.gif
ilko_t
Changing $WIN_NT$.~LS to $WIN_01$.~LS in setupdd.sys.
GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x001:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys

Does it make sense now?
malinduta
QUOTE (ilko_t @ Apr 14 2008, 01:03 AM) *
Changing $WIN_NT$.~LS to $WIN_01$.~LS in setupdd.sys.
GSAR -i -o -s$:x00W:x00I:x00N:x00_:x00N:x00T:x00$:x00.:x00~:x00L:x00S:x00 -r$:x00W:x00I:x00N:x00_:x000:x001:x00$:x00.:x00~:x00L:x00S:x00 setupdd.sys

Does it make sense now?

Oh, yes, TY! smile.gif
Nice shot using the colours thumbup.gif
theles
QUOTE (andy_le2k @ Mar 25 2008, 12:23 PM) *
Thanks to everybody who made this possible for me - especially these superstars: jaclaz, ilko_t, cdob and wimb

I just want to list the steps I took below, I can't promise that it will work for all of you but it worked for me.

01 - Make XP1 Source using usb_multiboot.cmd

02 - Rename $WIN_NT$.~BS and $WIN_NT$.~LS to $WIN_01$.~BS and $WIN_01$.~LS

03 - Rename SETUPLDR.BIN to XPS01 and rename TXTSETUP.SIF to TXTSET01.SIF

04 - Make XP2 Source using usb_multiboot.cmd


I'm stuck at this point.

I have two working XP ISOs. Both was customized/updated using nLite. I'd extract them to sepparated folders and make the first installation on the USB. It works just fine, and the installation was pretty fast. Then I try to add the second installation with the instructions above.

After rename the folders, I start again the process with the USB_MultiBoot_10.cmd, select the new source, and the new $OEM$ folder, select the USB again, and them try to make the multiboot. I've got a message saying that source and destination has the same drives.

I'm pretty sure that I'm doing something wrong, but I just can't figure out what it is. Can someone help? Wich options should I choose for make the second boot?

FYI, alone, the second iso is working too.

Thanks
Theles
wimb
QUOTE (theles @ Jun 16 2008, 10:57 PM) *
Then I try to add the second installation with the instructions above.

After rename the folders, I start again the process with the USB_MultiBoot_10.cmd, select the new source, and the new $OEM$ folder, select the USB again, and them try to make the multiboot. I've got a message saying that source and destination has the same drives.

You should not manually rename the folders newwink.gif
Let USB_MultiBoot_10.cmd do the work, the whole procedure is build in the program.

See Support and Changes: http://www.msfn.org/board/install-XP-USB-t...6.html&st=6
QUOTE
- Multiple XP Install from USB is now Supported (max 9 sources)
http://www.msfn.org/board/SOLVED-Install-M...SB-t114543.html
Run USB_MultiBoot.cmd again using New XP Source and Empty XX_CONTENT Source Folder

The last sentence is exactly what you have to do, to solve your problem smile.gif

So you have to run USB_MultiBoot_10.cmd TWICE
For the second Run we have:

With N) you Select NO Format

With 1) you Select your second XP Source, located on your Harddisk
With 2) you Select your USB-Drive Target
With C) you Select Empty XX_CONTENT Source Folder, which is part of your USB_MultiBoot_10 folder,
located on your Harddisk, and NOT on your USB drive newwink.gif

With 3) you Make the USB-stick and Copy the second XP-Source
andy_le2k
Never really had a chance to thank wimb for implementing the multiple XP sources in version 9 and 10 of his program, so thanks heaps for taking the cumbersome task of manually doing this out of the way.

Here are a few things I've noticed with these latest releases:

It can't handle multiple WIN2003 sources, the installation process between XP and 2003 should be very similar but if you use multiboot10 to add 2003 as an additional source, it will give you a ntldr corrupted error! If you were to use a setupldr from an XP source, txtsetup will load but it will error once it starts expanding some files.

Here's what I did:

I created 2 XP sources so there are 2 XP setupldr's (XAT01 and XAT02). I then created a 2003 source which has XAT03 which i renamed to XAT03.old and copied the XAT01 over as XAT03. I then hex-edited XAT03 and replaced all instances of $win_01$ with $win_03$ and also did the same for txtset01 to txtset03. This loads the txtsetup portion of 2003 fine but it complains about a file note found in txtsetup.sif.

------------------------------------------------------------------------------------

Here's my personal wishlist for future releases of multiboot:

It would be nice to be able to automate the multiple PE process (BartPE + WinFLP + ERD Commander).

Some how be able to add multiple Vista installs without multiple partitions. Currently I'm booting into a Vista PE then navigate by cmd prompt to the desired source folder and executing the setup.exe - I also have 2 Vista PE's booting from bootmgr, one for x86 sources and one for x64.

So from the grub4dos menu (I have my boot.ini directly load grub4dos) I run the bootmgr which then gives me the option to run x86 PE or x64 PE.

That is like 3 layers of menus I go through plus manually navigating to the right source path and launching the setup. It would be better to shorten this somehow.

My USB hard drive:
USB:\Vista\x86\Setup.exe
USB:\Vista\x64\Setup.exe
USB:\Vista\Server2008x86\Setup.exe
USB:\Vista\Server2008x64\Setup.exe

Thanks a lot for reading.
wimb
QUOTE (andy_le2k @ Jun 18 2008, 02:30 AM) *
Never really had a chance to thank wimb for implementing the multiple XP sources in version 9 and 10 of his program, so thanks heaps for taking the cumbersome task of manually doing this out of the way.
Thanks for your reply with feedback information. smile.gif

QUOTE
It can't handle multiple WIN2003 sources
I don't know if this can be solved, anyway it needs a lot of testing to find out what are the possibilities. unsure.gif
I don't have Windows 2003, so I cannot help you with this.

QUOTE
Here's my personal wishlist for future releases of multiboot:

It would be nice to be able to automate the multiple PE process (BartPE + WinFLP + ERD Commander).
After running INSTALL_DUMMY.cmd from the makebt folder, it is possible to make USB-stick with multiple partitions.
Then using USB_MultiBoot_10.cmd TWICE, you will be able to install BartPE + UBCD4WIN on the different partitions.
It is semi-automatic, but you want it more automated for BartPE + WinFLP + ERD Commander ?

QUOTE
Some how be able to add multiple Vista installs without multiple partitions.
Anyway it is possible already,
allthough the 3-level Menu solution with boot.ini - GRUB4DOS - bootmgr Menu,
and first booting with Windows PE 2.0 is may be not your ideal solution. newwink.gif
ilko_t
QUOTE (andy_le2k @ Jun 17 2008, 05:30 PM) *
...It can't handle multiple WIN2003 sources, the installation process between XP and 2003 should be very similar but if you use multiboot10 to add 2003 as an additional source, it will give you a ntldr corrupted error! If you were to use a setupldr from an XP source, txtsetup will load but it will error once it starts expanding some files...
There is a checksum check, hence the "NTLDR corrupted" read it as "SETUPLDR.BIN corrupted".
Either add it as not modified source, or just "crack" it:
http://www.msfn.org/board/Solution-for-mul...-64-t58410.html
http://www.msfn.org/board/Multiboot-WinXP-...-SP-t47226.html

As for the multiple PE and Vista sources- is there anyone else interested? May be saving some time for more important features/bugs could be a good idea?
cdob
QUOTE (ilko_t @ Jun 17 2008, 10:40 PM) *
May be saving some time for more important features/bugs could be a good idea?

Another idea:
don't you use NTFS USB stick or USB hard disk?
NTFS support hardlinks. This saves space.

'finddupe -hardlink' replace duplicates with hardlinks.
http://www.sentex.net/~mwandel/finddupe/
theles
QUOTE (wimb @ Jun 17 2008, 02:26 AM) *
The last sentence is exactly what you have to do, to solve your problem smile.gif

So you have to run USB_MultiBoot_10.cmd TWICE
For the second Run we have:

With N) you Select NO Format

With 1) you Select your second XP Source, located on your Harddisk
With 2) you Select your USB-Drive Target
With C) you Select Empty XX_CONTENT Source Folder, which is part of your USB_MultiBoot_10 folder,
located on your Harddisk, and NOT on your USB drive newwink.gif

With 3) you Make the USB-stick and Copy the second XP-Source



Wimb,

First of all, thanks for the attention. I've made as you said, and it work just fine. But, there's always a but, I have one doubt.

The first ISO, was customized with several updates and with some scripts that, for example, change the user folder and do some other stuff. The second ISO has only the updates of the first, but without any changes, is just like an original XP SP2, but with the updates.

I've made the first source without problems and it work fine. Following your instructions, I'd go to the second. The option "M - Select $OEM$ Folder" keep the option that was selected with the previous ISO.

I would like to know, what should I do, because:
- leaving this option fullfilled, the first installation work Ok, and the second work fine but at the end of the installation, it gave me one error, saying that the nlite.sif file wasn't found, and the installation succefully ends, and I didn't found any kind of problem.

- changing it to the folder of the second iso folder, both installations didn't work.

Am I doing something wrong...again!? Thanks a lot.
Theles
Google Internet Forums Unattended CD/DVD Guide
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.