Richard Shaffer
2003-Aug-28 23:22 UTC
[syslinux] Using PXELINUX with Windows 2000 DHCP and TFTP
I noticed some links and suggestions on the SYSLINUX web site that reference how to run TFTP on Windows 2000 Server. Two of them suggest installing RIS, and one of them points to a third-party utility. I don't need to install RIS, because I don't want to run Windows setup over PXE. (In fact, I want to use PXELINUX to boot a DOS floppy and run Symantec Ghost to deploy an image.) Also, I want to avoid installing RIS because it also installs the SIS (Single Instant Storage) service, which can have a profound effect on the way your filesystem works. Finally, Mr. Jounin's FTPD server is quite useful, but I wanted something that could run as a service. The answer to my problem was to install Microsoft's TFTP server without installing RIS, and then configure the DHCP server options. I just wanted to document how I did this, in case the information is useful to anyone else. To install the TFTP daemon: 1. On the Windows 2000 Server CD, find the file TFTPD.EX_ in the I386 directory, and copy it to c:\winnt\system32. 2. Open a command prompt, and do "cd c:\winnt\system32" followed by "expand TFTPD.EX_ tftpd.exe". (You may delete the TFTPD.EX_ file now if you wish.) 3. tftpd.exe runs as a service. To install the service, create a file named tftpdins.vbs (or any name that ends in .vbs will do) and copy and paste the following to the file, then save the file: Set ServiceObj = GetObject("WinMgmts:Win32_Service") CreateSuccess = ServiceObj.Create("tftpd", _ "Trivial File Transfer Protocol Daemon", _ "%SYSTEMROOT%\System32\tftpd.exe", _ 16, _ 1, _ "Automatic", _ FALSE, _ NULL, _ NULL, _ NULL, _ NULL, _ NULL) WScript.echo "All finished." 4. Execute the VBS file you created in step 3 by double-clicking on it. If all went well, you will see the "All finished" message and no errors. 5. From the command prompt, do "net start tftpd". 6. Copy the necessary PXELINUX files to c:\tftpdroot. In my case, I'm using PXE to boot a DOS floppy image, so the files I have in here are bootdisk.img, memdisk and pxelinux.0. My configuration file is named "default" and goes in c:\tftpdroot\pxelinux.cfg\. To configure the DHCP server: 1. On your DHCP server, from the Start Menu open Programs->Administrative Tools->DHCP. 2. In the tree on the left, navigate to and select either "Server Options" or one of the "Scope Options" folders, depending on whether you want to be able to do a PXE boot on all subnets or just one. 3. Right-click in the right-hand side of the window and choose "Configure Options". 4. Scroll down and check the box next to option 066, Boot Server Host Name. In the "String value" field, enter the IP address of your TFTP server. 5. Next, check the box next to 067, Bootfile Name. Enter "pxelinux.0" in the "String Value" field. 6. Click OK to Commit the changes. After this you should be able to boot PXE clients. Richard Shaffer | Cranite Systems, Inc. (408) 360-4907 http://www.cranite.com/