Network Installation and Netbooting

Updated

October 30, 2026

Network Installation and Netbooting

In modern cloud environments, edge computing, and bare-metal server racks, attaching physical USB thumbdrives is impractical. Operating systems must support Preboot Execution Environment (PXE) network booting.

+-----------------------------------------------------------+
|                   The PXE Boot Sequence                   |
|                                                           |
| 1. Client Machine Powers On                               |
|    - NIC sends DHCP Discover with PXE options (Option 66/67)
|         |                                                 |
|         v                                                 |
| 2. DHCP Server Responds                                   |
|    - Allocates IP (192.168.1.150)                         |
|    - Option 66 (Next Server): TFTP IP (192.168.1.10)      |
|    - Option 67 (Boot File):   bootx64.efi or ipxe.efi     |
|         |                                                 |
|         v                                                 |
| 3. TFTP Transfer                                          |
|    - Client downloads bootloader binary into memory       |
|         |                                                 |
|         v                                                 |
| 4. HTTP / iPXE High-Speed Transfer                        |
|    - Bootloader fetches vmlinuz and initramfs over HTTP   |
|         |                                                 |
|         v                                                 |
| 5. Linux Kernel Boots                                     |
|    - Initramfs configures DHCP on eth0                    |
|    - Mounts rootfs over NFS or downloads live SquashFS    |
|    - Launches installer or automated agent                |
+-----------------------------------------------------------+

iPXE: The Modern PXE Chainloader

Standard motherboard PXE implementations use TFTP (Trivial File Transfer Protocol). Because TFTP operates over UDP with lock-step packet acknowledgement, downloading a 2 GB modern kernel and initramfs over TFTP can take over 45 minutes!

Modern distributions chainload iPXE: - iPXE adds HTTP, HTTPS, and DNS support to network booting. - Downloads run at full 10-Gigabit or 25-Gigabit line rates via HTTP.

Sample iPXE Boot Script (boot.ipxe)

#!ipxe
echo Booting BYOL Network Installer...
dhcp
kernel http://netboot.byol.org/boot/vmlinuz-byol ip=dhcp netboot=http://netboot.byol.org/byol/rootfs.squashfs quiet
initrd http://netboot.byol.org/boot/initramfs-byol.img
boot

Inside the initramfs, if the kernel command line contains netboot=http://..., the /init script invokes curl or busybox wget to download rootfs.squashfs directly into a temporary tmpfs RAM disk before mounting it via loopback.