PXES HOWTO: Installing in a Microsoft only environment.

by Willis Doiron (wdoiron@advantagecall.com)
Copyright © 2001-2002. All rights reserved.
This software is free software under the GNU General Public License.


Willis Doiron <wdoiron@advantagecall.com>


Diego Torres Milano <diego@in3.com.ar>
Prebuilt images
Oliveros <oliveros@cannon.ca>
MS Tftpd
Scot Mac Rae <scot@aptlearning.com>
Rolandas Rudomanskis <rrol2002@hotmail.com>

Configuring the environment

In a Microsoft only environment, Linux is only necessary to build the image.  If you don't want to install a Linux box to build those images you can download and you some of the pre-built images.
You will need to configure a windows TFTP server & make some necessary changes to your DHCP server.  Once this is complete you can boot your clients to a Microsoft Terminal Server logon.

Building the image

Following the read me to install PXES on a Linux box.  Even though you will be using a Windows TFTP & DHCP server, you must still install these packages in order to build your client images.  After the installation, follow the Quick Start Guide for configuration procedures.  In newer distributions of PXES, Step 2 will also have an option for Enable Mouse Wheel Support, most users will want this enabled.  In Step 4 make sure you choose RDP as the Session Type.  In newer distributions of PXES, you are also presented with Monitor Frequency options.  Most Windows users are unfamiliar with these.  Try searching the manufacturer of your monitor for correct values.  HP has a list of Frequencies for their monitors here.  The rest of the configuration should be straightforward.

Using pre-built images

If you don't want to build your own images and you have verified hardware, you can download pre-built images and use it "out of the box".

TFTP Server Configuration

A TFTP server does not come native with any installation of Windows Server.  You will need to find some 3rd party option.  Tftpd32 is a Freeware solution that works well.  You can download the version 2.52 that is recommended for PXE clients here.  Extract the files to a folder somewhere on your DHCP server.  The location of the program isn't as important as where you put the PXES files.  Note that Tftpd32 does not run as a service.  So you will have to have an account logged in and start Tftpd32 or setup a policy to start Tftpd32.

TFTP Server Configuration

The default settings for Tftpd32 will work fine if you do not use remote configuration. Otherwise, make sure that you enable Tanslate Unix file names and Allow '\' As virtual root. Now copy the PXES configuration files (everything in the tftpboot directory) from your Linux box to the same location as the Tftpd32 program files.  If you do not put them in the same directory as tftpd32.exe then you must change the Current Directory to reflex this.

PXES Files

When you copy the files from your Linux box, the default file located in the pxelinux.cfg directory may append .txt.  If this happens, you must remove the .txt extension.

Default Configuration File

If you don't want any interaction between the user and PXES during boot up, you will want to change prompt 1 to prompt 0 in the default file.


Running Microsoft TFTP as a service

This is a simple procedure of how to use the tftp server included in Windows 2000 server to boot a machine remotely using PXES without installing Remote Installation Services (RIS).

  1. Copy the file tftpd.exe from root%\system32\dllcache to \root%\system32
  2. Using the Resource Kit utility instsrv.exe create a service using the following command: instsrv tftpd c:\winnt\system32\tftpd.exe
  3. Start the service using this command: net start tftpd After the service start it create a directory c:\tftpdroot If you want to start the service at boot time open the administrative tools double click the services icon and open the properties of the ftfpd service, select the option to start automatically.
  4. TFTPd Service
  5. Copy the files required to remote boot (in this case I use PXES ) to c:\tftpdroot pxelinux.0 pxelinux.1 pxes-0.5.initrd vmlinux-2.4.7-10pxes pxes-splash.lss pxes.msg pxelinux.cfg (directory) default (under pxelinux.cfg)
  6. Using the Windows 2000 server dhcp server configurator add the following Scope Options: Scope Options: 066 Boot server host name tftpd IP address 067 BootFile name pxelinux.0
  7. Restart the Dhcp server
  8. Test this configuration using a remote machine with a NIC that support pxes.

DHCP server

Four additional entries must be made on your MS DHCP server.

DHCP Server configuration

Highlight the Scope Options for the subnet in which you like to use PXES.  Now choose configure options from the Action menu.  Find 066 Boot Server Host Name and enter a String Value of the name of your MS DHCP server.  It's recommended that you use your DHCP server as the TFTP server.  But to inform PXE clients that the DHCP server also serves TFTP requests you need to enter the following Binary Value for 043 Vendor Specific Info: 01 04 00 00 00 00 ff.  Now find 067 Bootfile Name and enter a String Value of pxelinux.0. Additionally, you must add Option 060 ClassID.  Because Option 060 is not standard on Windows 2000 and Windows 2003, you may need to add it from the command line.  To do so, start Command Prompt and enter the following commands:

To verify that the Option 060 was added successfully enter the command:

Exit issuing command exit and restart your DHCP server.  In the right pane you should see Scope Options as in the image above.

Client Configuration

The only remaining step is to set your clients to boot from the NIC using PXE.  You may be able to set your Network Card as 1st Boot Device in your bios.

How to make a non-PXE compliant network card (NIC) compliant!

You use rbfg.exe to create a Microsoft® Remote Installation Services (RIS) boot disk that contains a PXE client.  This client disk can then be used to network boot client computers that do not contain a PXE enabled ROM. This will allow you to create one initrd image, no NBI images required, for all thin-client PC's.

 Argon Technology has an update to RBFG available, version 2 build 20, which supports additional adapters.  This build is available as a free download from the Argon web site, go to (http://www.argontechnology.ca/download/).

Interestingly, the rbfg.exe creates a image that will work on any TFTP server, not just a RIS server. As far as I can tell all the rbfg.exe utility does is create a bootable DOS floppy and then puts a standard RIS file on the floppy. This RIS image is the same no matter what PCI NIC you have, it just has to be a NIC's listed below.

Basically this means if you have a non-PXE compliant NIC and you would like to have a single disk boot for all of  your non-PXE compliant NIC's then this utility is for you. You can now use the same initrd image, negating the need for NBI images, on all your thin-client PC's.

Cards Supported:

3Com 3C905-TX
3Com 3C905-T4
3Com 3C900-TP0
3Com 3C900-Combo
3Com 3C900B-TPO
3Com 3C900B-Combo
3Com 3C905B-TX
3Com 3C905B-Combo
3Com 3C900B-FL
3Com 3C905B-FX
3Com 3C900B-TPC
3Com 3C905C-TX
SMC 9432
HP DeskDirect 10/100 TX
Intel Pro 100+
Intel Pro 10+
Intel Pro 100B
SMC 8432
SMC 9332
AMD PCnet Adapters
Compaq NetFlex 100
Compaq NetFlex 3
Compaq NetFlex 110
3Com MiniPCI
Realtek RTL8029
Realtek RTL8139
SMC 1211TX
Accton MPX5030
Allied Telesyn 2500TX
National 83815 compatible
Accton MPX5030
Allied Telesyn 2500
Accton EN1209D-TX5
Allied Telesyn 2450
Allied Telesyn 2700
Allied Telesyn 2745
  1. Download rbfg.exe from http://www.argontechnology.ca/download/
  2. Make sure you have a pre-formated DOS disk (do NOT select "make this floppy bootable")
  3. Double click on the rbfg.exe executable, the following prompt will be displayed

  4. Click on the "Create Disk" button, 2 minutes later you have a PXE-boot disk for all those non-compliant PXE NIC's!