NetBoot
The instructions on how to do a “NetBoot” may differ based on your need.
- Booting up a client (laptop/desktop/server), with the purpose of rescuing a broken boot process or installing an OS, by connecting it with wired cables to an OpenWRT router that will serve a rescue or install image over tftp. See Setting up OpenWRT to serve Archlinux netboot.
- Configuring the DHCP server to serve PXE boot config: see TFTP boot or Multi-arch TFTP boot.
- Serving boot images permanently from OpenWRT to some client (laptop/desktop/server) that does not have a boot media (possibly having the root partition on NFS or ramdisk). See tftp.pxe-server
- Setting up a client (laptop/desktop/server) to download images from the Internet (possibly booting from some other boot media than PXE/tftp). See https://netboot.xyz/
Concepts
- PXE - Preboot Execution Environment - is the standard for booting a device over a cabled network. It basically specifies that two other standards should be used.
- DHCP - the Dynamic Host Configuration Protocol is used both to set up networking and to get information on a tftp server and file name.
- TFTP - the Trivial File Transfer Protocol is used to transfer a boot image from the server. (this boot image will then often run DHCP again as part of the boot process)
- iPXE is both an implementation of PXE and additions to the PXE. With iPXE one can often use other protocols than tftp for fetching the boot image. If the client has a bios supporting iPXE, it's possible to bypass the tftp step, otherwise one may transfer the iPXE software through the TFTP protocol.