PXE/Network ISO Boot with Ubuntu on Beagleboard and Tomato WRT54G

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


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.


This entry was posted in Uncategorized and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *