|
|
Blog_Archive
|
 |
|
|
|
 |
|
|
Booting WinPE 2.0 from a third party PXE Server
|
 |
|
Location: Blogs Johan Arwidmark |
 |
| Posted by: johan |
3/30/2007 |
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} /d "Ramdisk options" 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} /d "Ramdisk options" 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} /d "Ramdisk options" 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) |
|
| Permalink |
Trackback |
Comments (2)
|
Re: Booting WinPE 2.0 from a third party PXE Server |
By Stratuscaster on
1/28/2009 |
I've gotten this to work well - I can boot multiple WIMs just fine...
The problem is that in the Windows Boot Manager, all the entries are shown as "Ramdisk options" and not the descriptions give to them (like "WinPE x86" and "WinPE x64") - and that makes it difficult for others to know what WIMs they are choosing.
Any thoughts? I've been working on this issue all day today, and am happy that it works as far as the booting part - but without the correct names in the menu, I cannot put it into production.
-jim |
|
|
Re: Booting WinPE 2.0 from a third party PXE Server |
By Stratuscaster on
1/29/2009 |
Issue solved.
Turns out that the BOOTMGR.EXE provided with the latest WAIK is the cause of the problem. Using the BOOTMGR.EXE from the older WAIK displays the menu choices correctly.
-jim |
|
|
|
|
|
Search_Blog
|
 |
|
|
|
 |
|