Ubiquiti EdgeRouter

This document covers how to setup netboot.xyz, a service that provides iPXE-based installation and live boot of a bunch of operating systems, on a Ubiquiti EdgeRouter.

Thanks go to Sam Kottler for originally writing up this how-to.


I’ve made a few assumptions throughout this document that will probably be different for your setup:

  • There is a DHCP pool called LAN
  • The LAN pool manages

Basic setup

With that out of the way, let’s get started.

First, we’re going to configure the main and contrib components with a mirror for Wheezy:


set system package repository wheezy components 'main contrib'
set system package repository wheezy distribution wheezy
set system package repository wheezy url http://http.us.debian.org/debian


Update the apt cache with our newly configured repo using sudo apt-get update.

Next, install TFTPD: sudo apt-get install tftpd-hpa. The service will be running once the package is installed. It doesn’t require any further configuration.

Setup TFTP components

Download the kpxe image for netboot.xyz and set the permissions properly:

sudo curl -o /srv/tftp/netboot.xyz.kpxe https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe
sudo chown tftp:tftp /srv/tftp/netboot.xyz.kpxe

At this point you should be able to use a TFTP client from a client in to fetch the image:

$ tftp
tftp> get netboot.xyz.kpxe
Received 354972 bytes in 2.0 seconds

Configure dhcpd

We’re gonna configure DHCP on the EdgeRouter to serve the right parameters to clients:


set service dhcp-server global-parameters "option client-arch code 93 = unsigned integer 16;"
edit service dhcp-server shared-network-name LAN subnet
set bootfile-server
set bootfile-name netboot.xyz.kpxe


The configuration for the LAN pool should now look something like the following:

skottler@edge1# show service dhcp-server shared-network-name LAN
 authoritative enable
 subnet {
     bootfile-name netboot.xyz.kpxe
     lease 86400
     start {

That’s it!