Welcome
This article describes how to configure a third party PXE Server (Jounin Tftpd32) for booting Windows PE 2.0
Perform all steps on a Vista Machine (the files/folders can of course later be transferred to a Windows 2003 SP1 server)
The guide covers the following steps
- Configure and the Install WAIK
- Create a x86 Windows PE 2.0 image
- Prepare the PXE Server folder structure
- Create a new BCD store
- Install and Configure the PXE Server (Tftpd)
- Create an x64 Windows PE 2.0 Image
- Create a BCD store with multiple choices
Step 1 – Creating the Server Structure
Download and install WAIK to the default location
Start an elevated command prompt (Run as administrator) and type the following commands
cd /d “C:\Program Files\Windows AIK\Tools\PETools”
copype x86 c:\winpe_x86
ren winpe.wim winpe_x86.wim
imagex /mount c:\winpe_x86\winpe_x86.wim 1 c:\winpe_x86\mount
md C:\PXEServer\TFTPRoot\Boot\Fonts
copy c:\winpe_x86\mount\Windows\Boot\PXE\pxeboot.n12 C:\PXEServer\TFTPRoot\boot /y
copy c:\winpe_x86\ISO\boot\fonts\*.* c:\PXEServer\TFTPRoot\Boot\Fonts /y
copy c:\winpe_x86\mount\Windows\Boot\PXE\bootmgr.exe C:\PXEServer\TFTPRoot /y
imagex /unmount c:\winpe_x86\mount
copy C:\winpe_x86\ISO\boot\boot.sdi C:\PXEServer\TFTPRoot\boot /y
copy c:\winpe_x86\winpe_x86.wim C:\PXEServer\TFTPRoot\boot /y
Note: Each line beginning with imagex or copy is a separate line (might have been wrapped)
Step 2 – Create a new BCD Store
In the C:\PXEServer folder, create a batchfile in named CreateBCD.cmd with the following content
Rem Creates BCD (boot configuration data) for Windows PE 2.0
set BCD-File=c:\PXEServer\Tftproot\Boot\BCD
del %BCD-File%
Bcdedit /createstore %BCD-File%
Bcdedit /store %BCD-File% /create {ramdiskoptions}
Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdidevice boot
Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
for /f “tokens=1-3” %%a in (‘Bcdedit /store %BCD-File% /create /d “WinPE x86” /application osloader’) do set guid1=%%c
Bcdedit /store %BCD-File% /set %guid1% systemroot \Windows
Bcdedit /store %BCD-File% /set %guid1% detecthal Yes
Bcdedit /store %BCD-File% /set %guid1% winpe Yes
Bcdedit /store %BCD-File% /set %guid1% osdevice ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /set %guid1% device ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /create {bootmgr} /d “Windows Vista BootManager”
Bcdedit /store %BCD-File% /set {bootmgr} timeout 30
Bcdedit /store %BCD-File% /set {bootmgr} displayorder %guid1%
Bcdedit /store %BCD-File% /enum all
Note: Each line beginning with bcdedit or for is a separate line (might have been wrapped)
In the Command prompt, run the CreateBCD.cmd batch file.
Step 3 – Configure the PXE Server
Download Tftpd32 v3.03 from http://www.jounin.net/tftpd32_download.html and extract the tftpd32.exe and tftpd.hlp files to C:\PXEServer.
Start Tftpd32 (Unblock for Vista Firewall) and configure the following TFTP Server Settings:
– Base Directory: C:\PXEServer\TFTPRoot
– Allow “\” As virtual root
– TFTP Security: Read Only
– Use anticipation windows of: 8192
Note: Using anticipation windows can greatly improve transfer speed, but since it is prohibited by the TFTP specification, a special warning is displayed when this box is checked.
DHCP Server Settings, change to reflect your environment.
– IP pool starting address: 192.168.1.100
– Size of pool: 99
– Boot File: /boot/pxeboot.n12
– Default Router: 192.168.1.1
– Mask: 255.255.255.0
– Domain name: tslab.net
Optional – Add a x64 Image
Create a x64 Windows PE 2.0 Image
copype amd64 c:\winpe_x64
ren winpe.wim winpe_x64.wim
copy c:\winpe_x64\winpe_x64.wim C:\PXEServer\TFTPRoot\boot /y
In the C:\PXEServer folder, create a batch file in named CreateBCD2.cmd with the following content.
Rem Creates BCD (boot configuration data) for two Windows PE 2.0 images
set BCD-File=c:\PXEServer\Tftproot\Boot\BCD
del %BCD-File%
Bcdedit /createstore %BCD-File%
Bcdedit /store %BCD-File% /create {ramdiskoptions}
Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdidevice boot
Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
for /f “tokens=1-3” %%a in (‘Bcdedit /store %BCD-File% /create /d “WinPE x86” /application osloader’) do set guid1=%%c
Bcdedit /store %BCD-File% /set %guid1% systemroot \Windows
Bcdedit /store %BCD-File% /set %guid1% detecthal Yes
Bcdedit /store %BCD-File% /set %guid1% winpe Yes
Bcdedit /store %BCD-File% /set %guid1% osdevice ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /set %guid1% device ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}
for /f “tokens=1-3” %%a in (‘Bcdedit /store %BCD-File% /create /d “WinPE x64” /application osloader’) do set guid2=%%c
Bcdedit /store %BCD-File% /set %guid2% systemroot \Windows
Bcdedit /store %BCD-File% /set %guid2% detecthal Yes
Bcdedit /store %BCD-File% /set %guid2% winpe Yes
Bcdedit /store %BCD-File% /set %guid2% osdevice ramdisk=[boot]\Boot\winpe_x64.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /set %guid2% device ramdisk=[boot]\Boot\winpe_x64.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /create {bootmgr} /d “Windows VISTA BootManager”
Bcdedit /store %BCD-File% /set {bootmgr} timeout 30
Bcdedit /store %BCD-File% /set {bootmgr} displayorder %guid1% %guid2%
Bcdedit /store %BCD-File% /enum all
Note: Each line beginning with bcdedit or for is a separate line (might have been wrapped)
Optional – BCD with multiple entries.
In the C:\PXEServer folder, create a batchfile in named CreateBCD3.cmd with the following content.
Rem Creates BCD (boot configuration data) for three Windows PE 2.0 images
set BCD-File=c:\PXEServer\Tftproot\Boot\BCD
del %BCD-File%
Bcdedit /createstore %BCD-File%
Bcdedit /store %BCD-File% /create {ramdiskoptions}
Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdidevice boot
Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
for /f “tokens=1-3” %%a in (‘Bcdedit /store %BCD-File% /create /d “WinPE x86” /application osloader’) do set guid1=%%c
Bcdedit /store %BCD-File% /set %guid1% systemroot \Windows
Bcdedit /store %BCD-File% /set %guid1% detecthal Yes
Bcdedit /store %BCD-File% /set %guid1% winpe Yes
Bcdedit /store %BCD-File% /set %guid1% osdevice ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /set %guid1% device ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}
for /f “tokens=1-3” %%a in (‘Bcdedit /store %BCD-File% /create /d “WinPE x86 2” /application osloader’) do set guid2=%%c
Bcdedit /store %BCD-File% /set %guid2% systemroot \Windows
Bcdedit /store %BCD-File% /set %guid2% detecthal Yes
Bcdedit /store %BCD-File% /set %guid2% winpe Yes
Bcdedit /store %BCD-File% /set %guid2% osdevice ramdisk=[boot]\Boot\winpe_x86_2.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /set %guid2% device ramdisk=[boot]\Boot\winpe_x86_2.wim,{ramdiskoptions}
for /f “tokens=1-3” %%a in (‘Bcdedit /store %BCD-File% /create /d “WinPE x64” /application osloader’) do set guid3=%%c
Bcdedit /store %BCD-File% /set %guid3% systemroot \Windows
Bcdedit /store %BCD-File% /set %guid3% detecthal Yes
Bcdedit /store %BCD-File% /set %guid3% winpe Yes
Bcdedit /store %BCD-File% /set %guid3% osdevice ramdisk=[boot]\Boot\winpe_x64.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /set %guid3% device ramdisk=[boot]\Boot\winpe_x64.wim,{ramdiskoptions}
Bcdedit /store %BCD-File% /create {bootmgr} /d “Windows VISTA BootManager” Bcdedit /store %BCD-File% /set {bootmgr} timeout 30
Bcdedit /store %BCD-File% /set {bootmgr} displayorder %guid1% %guid2% %guid3%
Bcdedit /store %BCD-File% /enum all
Note: Each line beginning with bcdedit or for is a separate line (might have been wrapped)
/ Johan