PXE requires a special TFTP server. Read pxelinux.doc from the
already mentioned syslinux package for details.
In an earlier version of this document I suggested using tftp-hpa
started from xinetd. This combination of tools cannot reliably handle
much more than 64 clients at a time! With more clients not all of them will get
an answer from your TFTP and you will see syslog messages like this:
tftpd: read: Connection refused.
Update:
Per H. Peter Anvin, the problem with tftp-hpa should be fixed with
version 0.17. I haven't tried it myself, though.
To overcome this problem I am now using atftp from
ftp://ftp.mamalinux.com/pub/atftp/. This TFTP server can run as
stand-alone daemon which is the mode I am using.
Grab the source and compile it. It should compile just fine on Red Hat Linux.
Start the daemon on your TFTP server with some options:
/usr/sbin/atftpd --daemon --no-multicast --group nobody --tftpd-timeout 0 -m 1000 /tftp
Depending on your local group definitions you may not need to change the group
ID the daemon is running under. The default group it uses is nogroup.
The TFTP server directory /tftp should look like this:
/tftp/initrd-6.2.img
initrd-7.2.img
pxelinux.0
vmlinuz-6.2
vmlinuz-7.2
Kickstart_end
/tftp/pxelinux.cfg/C0A8000B -> default.netboot-7.2
C0A8000C -> default.netboot-6.2
default
default.netboot-6-2
default.netboot-7.2
See Section
Linux Kernel, Initial RAM disk for how
to get the files vmlinuz-6.2, vmlinuz-7.2,
initrd-6.2.img, and initrd-7.2.img.
If you want to use the script described in Section
A useful script, you should have the empty file
Kickstart_end in your TFTP directory:
touch /tftp/Kickstart_end
If you are again, as for the DHCP server, concerned about stability of your
TFTP server you can, again, put your /tftp/ directory in a shared
file system (like NFS or AFS) and have all your TFTP servers access this
shared space. The method for preventing endless re-installation loops of your
clients describe in Section
A useful script
will work even in this setting.