Skip to main content
  1. Posts/

Booting with PXE

·477 words·3 mins·
Matthew P. Slanker
Matthew P. Slanker
I am only human
Table of Contents

This was a port of an old article from my page. The information within may be out of date.


Goal: Enable PXE booting on the home network for both BIOS and UEFI machines.

The following tools will be used:

  • Ubiquiti EdgeRouter X w/ dnsmasq for DNS & DHCP
  • Synology will host the TFTP server and images
  • Hyper-V / Parallels will be used for testing

For starters we need on bootable image, I have opted to use netboot for image sources. A suitable alternative would be pxelinux.

Setting Up the TFTP Server

Before we can tell the machines to boot anything we need to configure the TFTP server. As mentioned this will reside on our Synology. -> https://synology.home.local

Enabling TFTP and Setting Up the Root Folder

Make sure that you have a shared folder that is accessible. For my testing I just created a share called PXE and gave guest read-only access.
  • Login to the web UI
  • Click on Control Panel
  • Click on File Services
  • Select the TFTP tab
    • check the box next to “Enable TFTP service”
    • Be sure to set the root of your TFTP server below this box
    • (Optional) Under advanced settings you can enable file transfer logs
    • Click Apply
  • Using your system’s file browser navigate to the network share (e.g. \\synology.home.local\PXE)
This folder should be empty for now

Adding an Image or Three

I found it easist to start with using a Gen 1 machien in Hyper-V or even easier to use Parallels and build a legacy (BIOS) machine. And in order to have an image that will boot with BIOS, from the downloads page, you can choose either:

To keep things organized create a folder named bin in the root of your shared drive and copy one or both of these files to the newly created bin/folder.

Testing the TFTP Server

The easist way I have found to test is from either WSL or a *nix-based OS, install tftp which is a client. Then you can use the following commands: tftp & get to verify that you can download the images via TFTP. The output should look like so:

user@localhost:~$ tftp <Your Synology IP>
tftp> get bin/<image-name>
Recieved 91646 bytes in 0.1 seconds

Congratulations! If you see the #### bytes received, you can successfuly download a bootable image via TFTP.

Configured DHCP options for PXE

In my homelab I am running an EdgeRouter X (ER-X) and instead of using the default ISC DHCP daemon, I am using dnsmasq. As such when configuring the dhcp-server options certain values will be ignored (namely global-parameters & subnet-parameters) and instead dnsmasq configurations will have to be made under the dns-forwarding within the “options” sections.

Resources that were helpful in figuring out how to ork with dnsmasq and ER-X.


Docker Contexts & Synology
·2042 words·10 mins
Matthew P. Slanker
Creative Coding
·519 words·3 mins
Matthew P. Slanker
About The Authors
·297 words·2 mins
Angular + FastAPI with OpenAPI Generator
·854 words·5 mins
Matthew P. Slanker
A place for various projects
·16 words·1 min
Matthew P. Slanker