Homelab PXE Booting

I finally had some time to come back to the PXE project this week. After a bit of time debugging the iPXE menus in mid-September, I realised that I was reinventing the wheel to a large extent, particularly given that I was digging through the netboot.xyz GitHub repo to understand the iPXE menu and boot process anyway. At that point, I may as well pivot back to the actual netboot.xyz project and use 64-bit ARM hardware.

While working on an unrelated project a fortnight ago, I ended up at Jaycar for some odds and ends and saw that they had the Radxa ROCK 4C+ on clearance for $99. One impulse buy later, I had a shiny new ARMv8 board based on the Rockchip RK3399. I’ve since added a PoE hat and 128GB eMMC chip to the build, and repurposed a Raspberry Pi 4 case (the ROCK 4C+ is pretty close but definitely not identical to a Pi 4). There were a few interesting rabbit holes along the way getting Debian going with the ROCK 4C+ board, and I can do a full writeup of the hardware side of things in another thread if there is any interest.

The separate subnet and DHCP nitty-gritty was already set up weeks ago, and the latest ARMv8 Docker and netboot.xyz went onto the ROCK 4C+ easily, with the only minor snags being iptables-legacy and --net=host related). I’ve done a several VM/BIOS/UEFI test boots, and one full Debian 13 netinst on real hardware. I’ll circle back to add a few custom boot entries at some stage for some specialised software I need to use occasionally, but otherwise the PXE side of it is done.

I’ve now got a low-power, physically small, PoE powered (i.e., single cable to the unit) box that can live on its own VLAN+subnet and provide boot services to the workbench as necessary :white_check_mark:. The Seagate Personal Cloud which inspired this thread will probably end up with the 1TB SSD back in it, and used as a local media server for when I re-rip the CDs to FLAC at some stage.

Definitely give netboot.xyz a go if you’re looking to solve a similar problem - keeping on top of rapidly multiplying and unlabelled USB boot drives :joy:.