This document is part of Unattended, a Windows deployment system.

It is possible to setup a PXE server on Widows 2000 server without installing RIS. Do all of this on whatever machine is serving DHCP.

DHCP Configuration

  1. Open the DHCP control panel from administrative tools.
  2. Expand the server you are wanting to configure. Expand the "Scope" folder. Right click on "Scope Options" and select "Configure Options".
  3. Put a check mark in "013 Boot File Size" and enter the file size in 512 octet blocks. Example, your boot image file is 12 KB (kilobytes). Convert 12 KB to bytes (12288). This must be exact, don't just multiply 12 by 1000. Divide the file size in bytes by 512 (12288 / 512). Enter the resulting number (24) in the text dialog that is enabled when you put a check in 013.
  4. Put a check mark in "043 Vendor Specific Info" and enter the following binary value: 01 04 00 00 00 00 ff.
  5. Open a command window and type the following:
    netsh dhcp>server \\server_name
    netsh dhcp server>add optiondef 60 ClassID String 0
    netsh dhcp server>set optionvalue 60 STRING PXEClient
  6. Put a check mark in "066 Boot Server Host Name" and enter the IP address of the server.
  7. Put a check mark in "067 Bootfile Name" and enter the name of the boot image file.
  8. (Thanks to Mark McRitchie for this step.)

    If you use the Linux-based boot disk, you can set the boot disk's defaults (user name, password, share) via DHCP option 233. Open a command prompt and type:

    netsh dhcp server add optiondef 233 Unattended String 0 comment="Unattended dhcp info"

    Go back to "Scope Options", select configure options, put a check mark next to the new entry, and fill in the boot disk options you want to use (e.g., z_user=username z_pass=sekrit z_path=\\myserver\myshare).

  9. Right click on the server name in the DHCP control panel, go to all tasks, and select "restart".
  10. Go back to scope options and verify that all the information is there. You should see the five entries on the right. They should look like this:
    013  Boot File Size             Standard        0x18
    043  Vendor Specific Info       Standard        01 04 00 00 00 00 ff
    060  ClassID                    Standard        PXEClient
    066  Boot Server Host Name      Standard        Server IP address
    067  Bootfile Name              Standard        bzImage (boot file name)

    If any of the options do not match these, double-click on the option and change the value. More than likely option 060 will be wrong. Change it so it looks like above.

You are now ready to set up tftp.

TFTP Configuration

  1. Copy "tftpd.exe" from "c:\winnt\system32\dllcache\tftpd.exe" to "c:\winnt\system32\tftpd.exe"
  2. Get a copy of "sc.exe" from the system32 folder on any windows xp box and place it in "c:\winnt\system32"
  3. Open a command window and type "sc create tftpd binpath= c:\winnt\system32\tftpd.exe "
  4. The service "tftpd" is now available in the service control panel. Open the control panel, find the service, and start it. (If you want it to start automatically, you can set it to do so from the control panel.)
  5. Open the registry to the following key. \\hkey_local_machine\system\currentControlSet\services\tftpd. Add a subkey "parameters" to the tftpd folder. Add a string value "Directory" to the "parameters" key. Give "Directory" the path location where your boot image file is located. (example c:\tftpd).

Much of this is adapted from Willis Doiron's nice document.

Thanks to Tyler Hepworth for the original version of this document.

Patrick J. LoPresti