Login
 
Blog_Archive
 
Booting WinPE 2.0 from a third party PXE Server
Location: BlogsJohan 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

  1. Download and install WAIK to the default location
  2. 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

  1. 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)
  2. In the Command prompt, run the CreateBCD.cmd batch file.

 

Step 3 – Configure the PXE Server

  1. Download Tftpd32 v3.03 from http://www.jounin.net/tftpd32_download.html and extract the tftpd32.exe and tftpd.hlp files to C:\PXEServer.
  2. 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.
  3. 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

  1. 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
  2. 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. 

  1. 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
Search_Blog
Copyright Deployvista.com 2006-2008 (c)