How To: Put Winpe And Xp On Same Cd

25 posts in this topic

As requested by: flattspott

The newest versions of ERD Commander uses windows PE (winpe). Let me first give a general background of winpe then explain the concepts behind winpe.

WinPE is the Preinstallation Environment. The first version of WinPE was version 1.0, that used windows XP. The current version of winpe is 1.3, which can use the XP files or server 2003 files. The power in winpe is it allows you to make 1 tool that you can use for deployments. In the past a company might have had to make a brand new dos tool to deploy windows, then they might make another tool for upgrading computers to the newest windows version. WinPE gives you a full 32bit OS that has some API support. So the same tool you use for deployments can be used for other purposes such as upgrades, which saves time and money for companies.

Despite the advantages of winpe, it's really not new technology. Install win2k then reboot. As the win2k setup comes up, you're looking at winpe. WinPE is exactly the same as win2k/XP setup at the 33 min mark. The only difference is winpe uses startnet.cmd for it's shell; setup uses setup.exe for it's shell. All microsoft did is tweak the code a little bit to make winpe work.

The concept behind winpe is the same as my BOOT or VOL1 folders. When you boot from BOOT or VOL1, setupldr.bin loads files from the current folder. Once the bootup process is done, setupldr.bin passes control to text mode setup (setupdd.sys). WinPE is basically a big BOOT or VOL1 folder. When you boot from WinPE, setupldr.bin loads the boot files from the current directory. When the boot process is done, setupldr.bin passes control to the shell, which in winpe's case is startnet.cmd. Because of this, to put winpe on a cd with another OS, you need to edit it just like a BOOT or VOL1 folder.

To put winpe on a cd, first copy the folder to your hard drive, it should be around ~150 megs. Let's say you copied WinPE to e:\WinPE. Rename the folder to something 4 digits long. In this example, im gonna name it WNPE.

Contents of e:\WNPE (all upper case)

Directory of E:\WNPE

01/01/2000  12:00 AM    <DIR>          .

01/01/2000  12:00 AM    <DIR>          ..

08/23/2001  09:00 AM    <DIR>          SYSTEM32

08/23/2001  09:00 AM    <DIR>          WINSXS

08/23/2001  09:00 AM    <DIR>          FONTS

08/23/2001  09:00 AM    <DIR>          HELP

08/23/2001  09:00 AM    <DIR>          INF

08/23/2001  09:00 AM    <DIR>          MSAGENT

08/23/2001  09:00 AM            47,580 NTDETECT.COM

08/23/2001  09:00 AM        245,920 SETUPLDR.BIN

08/23/2001  09:00 AM            11,966 EULA.TXT

08/23/2001  09:00 AM            48,037 BIOSINFO.INF

08/23/2001  09:00 AM        456,226 TXTSETUP.SIF

08/23/2001  09:00 AM                10 WIN51

08/23/2001  09:00 AM                10 WIN51IC

08/23/2001  09:00 AM              2 WIN51IC.SP1

08/23/2001  09:00 AM                10 WIN51IP

08/23/2001  09:00 AM              2 WIN51IP.SP1

08/23/2001  09:00 AM            167 WINBOM.INI

08/23/2001  09:00 AM        225,152 SPCMDCON.SYS

              12 File(s)      1,035,082 bytes

            8 Dir(s)  13,737,144,320 bytes free

If you have anything else then what i have, such as a DOCS folder, you can delete it.

Next, hex setupldr.bin and replace i386 with WNPE (all uppercase), it should do this 4 times.

Now we need to make a boot sector. If you have BOOT.DAT or VOL1.DAT, copy it as WNPE.DAT, and hex it, replace i386 with WNPE (all capital letters).

Now edit diskemu.cmd, and add the option for windows PE. Here's an example of sample diskemu.cmd:





print Press Enter to boot from CD...

getkey 5 esc

onkey esc boot 80

onkey entr goto start

; When no key found...

goto boot




print ------------------------------------------------------------------------------

print                                cd name

print                                  by gosh

print ------------------------------------------------------------------------------

print F1=Help

print              0) WINXP PRO Volume License SP1 Regular

print              1) WINXP PRO Volume License SP1 Unattended

print              2) WINXP PRO Volume License SP1 OEMPreinstall

print              3) WINXP HOME SP1 Regular

print              4) WINXP HOME SP1 Unattended

print              5) WINXP HOME SP1 OEMPreinstall

print              6) Windows PE SP1

print              7) Windows PE SP1 /inram


print              a) Windows 95b Bootdisk

print              :) Windows 98 Bootdisk

print              c) Windows ME Bootdisk


print              x) More Options...

print              q) Quit to command prompt

print              r) Reboot

print              Esc) Boot first harddisk


print Hit the key of choice:


; timeout is 30 seconds, default key is escape

getkey 30 esc

onkey 0 run VOL1.DAT

onkey 1 run VOL2.DAT

onkey 2 run VOL3.DAT

onkey 3 run HOM1.DAT

onkey 4 run HOM2.DAT

onkey 5 run HOM3.DAT

onkey 6 run WNPE.DAT

onkey 7 run WNP2.DAT

onkey a run win95.ima

onkey b run Win98.ima

onkey c run winme.ima

onkey q quit

onkey r reboot

onkey x goto dev

onkey f1 goto help

onkey esc boot 80

So when you boot from CD and select option for WinPE, diskemu.cmd hands off control to WNPE.DAT. WNPE.DAT loads setupldr.bin in the WNPE folder. Setupldr.bin boots the computer using the current directory (WNPE). Once it's done booting it hands off control to the shell (startnet.cmd).

Lastly, make sure winbom.ini is on the root of the cd. If the file isn't there, winpe ain't bootin'.

Tips (also applies to longhorn and erd commander):

1 - to change the wallpaper put your wallpaper into system32 folder as winpe.bmp

2 - to edit what winpe says as it boots up, edit txtsetup.sif and edit this line:

loaderprompt="Starting Windows XP Preinstallation Environment..."
To whatever you want. For example you could put:
loaderprompt="Starting WinPE Gosh Edition..."

3 - If you want to, you could change the boot logo by editing ntoskrnl.exe

4 - By default windows PE uses XP Professional, even if you use server 2003 as source. If you wanted to, you could edit the winpe files or setupreg.hiv to make it a server OS.

5 - If you want to add custom commands edit the OsLoadOptions line. For example change it from this:

OsLoadOptions ="/fastdetect /minint"
To this:
OsLoadOptions ="/fastdetect /minint /inram"

What /inram does it loads the whole winpe cd into memory. By default, winpe only loads what it needs, to save ram. Because of this behavior you cannot swap cd's once winpe is booted. However if you use the /inram command, everything is loaded to memory, allowing you to swap cd's.



Share this post

Link to post
Share on other sites

If you want to reduce the size of winpe by about 30 megs, run this batch file in the WNPE folder (same folder as setupldr.bin). It removes networking support and some fonts.




Share this post

Link to post
Share on other sites

if you got the room go for erdcommander2003.. larger footprint but much much nicer :)


Share this post

Link to post
Share on other sites
link This is much better then micrsoft's version try it. also this site link has a lot of good info.

Share this post

Link to post
Share on other sites

where do i get WinPE? cuz im gonna trying make a multi-boot OS which has XP Home, XP Pro, Windows 2k, WIndows 2k3

EDIT: I jus realized i dont need winpe but wat would i put in Home1.dat and pro1.dat and 2k3.dat and stuff so that when i select the OS i want to install it goes directly to the setup of that OS


Share this post

Link to post
Share on other sites

Like I said before, read the tutorials at www.tech-hints.com

Read them THOROUGHLY, do not just skim through it. If you follow exactly what they tell you to do, it will work. Yes, it takes time, but none of this is fast. If you want to do something like a multi-boot os cd, then you just have to deal with it.


Share this post

Link to post
Share on other sites

do you need anything else to make diskemu.cmd work on does that just have to be on the root of the CD


Share this post

Link to post
Share on other sites


Im new to the forum and WinPE

I have used a plain RIS server until now. now I am using Ris to "kick off" WinPE

I was wondering if anyone had any hints/tips as to how i may be able to use WINPE to "choose" what os to install and then use the the images created (the already made i386 folder from risetup)


Share this post

Link to post
Share on other sites


Recently, I downloaded Update Rollup 1 to be slipstreamed into Windows XP SP1.

But there are three additional files included in it after extraction. They are outside the folder "update".




These are the files included in your guide:






































Should any modification be made to the ***.inf files accordingly?


Share this post

Link to post
Share on other sites

ntoskrnl.exe is already in dosnet.inf, the other 2 files you don't need.



Share this post

Link to post
Share on other sites
Gosh, where can I find BOOT.DAT or VOL1.DAT?

Sorry to butt in but you can down load them directly off Goshs site.

If not pm me with your details & i'll send them to you.


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.