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)
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
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...
print cd name
print by gosh
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:
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:
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.