Introduction
This will guide you through running an Ubuntu server as PXE install server. You'll need to run a DHCP server on your network, not necessarily this server but you do need one. Some of the packages we'll install come from universe, so make sure you have it listed as a repository.
This document is work in progress, I'm typing it as I do this myself.
Installing needed packages
You'll need to install a few packages
sudo apt-get install tftpd-hpa syslinux netkit-inetd
If this is also going to be your DHCP server, install DHCPD
sudo apt-get install dhcp3-server
Configure dhcpd
If your pxe server is also your dhcp server, you'll need something like this in /etc/dhcp3/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; filename "/tftpboot/pxelinux.0"; }
If you have an existing dhcp server, you should point it to your pxe server by doing something like the following
subnet 192.168.0.0 netmask 255.255.255.0 { <other config here> filename "pxelinux.0" next-server <pxe host>; }
Configure tftpd-hpa
tftpd-hpa is called from inetd. The options passed to tftpd-hpa when it starts are thus found in /etc/inetd.conf
Change the path at the end to point to /tftpboot, your /etc/inetd.conf should then look like this
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot
Create the tftpboot directory and it's needed files
sudo mkdir /tftpboot sudo ln /usr/lib/syslinux/pxelinux.0 /tftpboot/