CM PXE handling
What happens during the PXE boot ?
When the client boots, it broadcasts a DHCP request with a flag telling it wants some PXE.
The CM server sees this request and replies giving a temporary IP address and telling the client to fetch a pxelinux file from a peculiar TFTP server.
The client's PXE ROM then contact the TFTP server, fetches the file then executes it. The PXE part run by the ROM is now over.
What role does PXELinux play ?
PXElinux then tries to contact the TFTP server it knows and requests a configuration file whose name is based on the MAC address of the network card used.
That is when the CGI patch applied to the TFTP servers plays its role: if a specific pattern is matched, then, a CM backend web page is accessed and dynamically creates the pxelinux configuration file based on what the CM server currently knows (time, day, load, labels, etc).
pxelinux then receives this configuration file and acts according to its contents, which may basically of the two following flavors:
- local boot or,
- chain / boot something else (Linux kernel, image, floppy image, other boot loader, etc.)
In the case it is a CM OS image, several options are passed by means of kernel command line options - this will be explained in the next section.
The IP address which was obtained during the PXE negotiation described above is now released.