PXE configuration with multiple ISOs

Here is the situation:
I have a bunch of ISOs with various installers for CentOS, Fedora, Ubuntu… and a Synology NAS.
I would like to be able to use PXE to boot into any of the installers I have.
problem is I have no idea how to configure it…
Can someone help me out?

1 Like

I know PXE can be configured to select different ISO’s at boot to install from, but that is using SCCM on a Windows server. I’m not sure about other ways to do it.

You could fork this (or just use it as is).


I’ll be setting up a self hosted DHCP PXE server on a VM in it’s own VLAN. Then plugging in machines that need PXE into that VLAN should solve my diskless hypervisor problem.


Nice. We’d greatly appreciate a how-to thread once you have it figured out.

@tgoward the setup works like this:

On boot, network card requests DHCP.
If DHCP offer contains a next server IP and a filename, those are interpreted as TFTP server IP and filename to fetch and start up.
Instead of fetching a large iso over flaky and slow TFTP, people will typically fetch and start a small chain loading bootloader over TFTP that contains an http/https client and can fetch the bigger kernel/iso/boot image from http. This small bootloader is typically pxelinux or ipxe.
It itself needs to be configured, and typically this works by ipxe trying to load a small text config from same tftp server.

This configuration can point to a Linux kernel binary+initramfs packaged drivers and ssh server … or it can point to an iso, or it can have multiple entries configured in a menu for interactive use.

Netboot.xyz is just an implementation of such a menu system with a bunch of preconfigured bootable things that can then be fetched from the internet, unfortunately it still requires small initial pieces to come from a working TFTP setup.

Thanks for the tldr @risk
@oO.o Looking into it, looks like netboot.xyz needs an internet connection to download the ISOs right? That’s a bumber as the production machines are not connected to internet (for safety reasons). Looking into self hosting and menu customising…

1 Like

Yeah that’s why I was thinking you’d fork it. I haven’t looked through the “code” but maybe it’s just a matter of hosting their pxe menu image and changing some urls.

e.g. dnsmasq in addition to DHCP also does tftp. It’s a one liner with a bunch of CLI options to get it running as a tftp server, and non-authoritative DHCP server. There’s probably examples on how to use it for PXE parts only and relay requests to existing stuff.

Albeit you may want to be careful to not screw up your existing prod environment.

iPXE is what you want to use for your menus. See https://ipxe.org/cmd and look for menu and item in there.

If you have an existing http servers for your ISOs, just point your iPXE script that’s served over https at it.

That’s all. (No need for netboot.xyz or an internet connection).

I wanted to know this for years. I looked at this youtube video and now I have installed over PXE Windows OS’s. Always a bit a learning curve of course.

YouTube Video to get PXE under Windows working