This is a short guide on configuring Ubuntu linux to provide network boot services to a local network. It works like this: DHCP responds with dhcp-boot option that tells the client to fetch the boot image from a certain computer. I have DHCP running on a WRT54G with the Tomato firmware and a Beagleboard running Ubuntu 12.04 to serve the boot images.
Image server:
sudo apt-get install syslinux sudo apt-get install tftpd-hpa sudo vim /etc/default/tftpd-hpa sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/ sudo cp /usr/lib/syslinux/memdisk /var/lib/tftpboot/ sudo vim /var/lib/tftpboot/pxelinux.cfg/default ls /var/lib/tftpboot/ images memdisk menu.c32 pxelinux.0 pxelinux.cfg
* note: might be missing some simple steps (mkdir, etc~
Content of /etc/default/tftpd-hpa:
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"
Content of /var/lib/tftpboot/pxelinu.cfg/default:
default menu.c32 prompt 0 timeout 30 ontimeout BootLocal noescape 1 allowoptions 0 menu title PXE Boot Server label BootLocal localboot 0 label Clonezilla kernel memdisk append iso initrd=images/clonezilla-live-20140630-trusty-amd64.iso raw label SystemRescueCD kernel memdisk append iso initrd=images/systemrescuecd-x86-4.3.0.iso
Setting in Tomato (Advanced DHCP):
After that, set your bios to boot via network and you should see a menu for boot options at boot.
References:
https://help.ubuntu.com/community/PXEInstallServer
https://help.ubuntu.com/community/PXEInstallMultiDistro