Jump to content

How To: Put Winpe And Xp On Same Cd


gosh

Recommended Posts

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:

;

:boot

cls

print

print Press Enter to boot from CD...

getkey 5 esc

onkey esc boot 80

onkey entr goto start

; When no key found...

goto boot

:start

cls

print

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

print              a) Windows 95b Bootdisk

print              :) Windows 98 Bootdisk

print              c) Windows ME Bootdisk

print

print              x) More Options...

print              q) Quit to command prompt

print              r) Reboot

print              Esc) Boot first harddisk

print

print Hit the key of choice:

:mainkey

; 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.

-gosh

Link to comment
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

Link to comment
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.

Link to comment
Share on other sites

  • 2 months later...
  • 4 weeks later...

Hi

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)

Link to comment
Share on other sites

  • 4 weeks later...

gosh

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".

ntoskrnl.exe

spmsg.dll

spuninst.exe

These are the files included in your guide:

accwiz.exe

crypt32.dll

cryptsvc.dll

hh.exe

hhctrl.ocx

hhsetup.dll

html32.cnv

itircl.dll

itss.dll

locator.exe

magnify.exe

migwiz.exe

mrxsmb.sys

msconv97.dll

narrator.exe

newdev.dll

ntdll.dll

ntkrnlmp.exe

ntkrnlpa.exe

ntkrpamp.exe

ole32.dll

osk.exe

pchshell.dll

raspptp.sys

rpcrt4.dll

rpcss.dll

shdocvw.dll

shell32.dll

shmedia.dll

srrstr.dll

srv.sys

sysmain.sdb

urlmon.dll

user32.dll

win32k.sys

winsrv.dll

zipfldr.dll

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

Link to comment
Share on other sites

  • 2 weeks later...

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.
×
×
  • Create New...