The SUSE Linux AutoYAST Boot Sequence
- 1. Client sends DHCP boot request
- 2. DHCP daemon looks up client
- 3. DHCP daemon sends reply
- 4. Client requests boot file
- 5. TFTP daemon sends boot file
- 6. Client requests boot menu
- 7. Server sends boot menu
- 8. Client gets any other required files
- 9. Client displays boot menu
- 10. Client boots selected option
1. Client sends DHCP boot request
The client runs the PXE firmware, which then broadcasts a DHCP request, including its own hardware address, over the network.
2. DHCP daemon looks up client
The DHCP daemon on the server receives the boot request, and looks up the hardware address in the file /etc/dhcpd.conf (or rather, a cached version of the file).
3. DHCP daemon sends reply
If the client hardware address is found, the DHCP daemon on the server sends a reply with at least this information:
- Client's IP address (eg. 192.168.100.101)
- TFTP directory and boot filename (e.g. /sles9_x86_sp3/pxelinux.0)
The server can also send:
- The client's network mask, default gateway, etc.
- The TFTP server's IP address (often the same as the DHCP/BOOTP server)
4. Client requests boot file
The client reconfigures its network settings as described by the server, and then sends a TFTP request for the specified boot filename.
5. TFTP daemon sends boot file
The TFTP daemon on the server receives the request, appends the boot filename to the TFTP directory (often /tftpboot, so the result is something like /tftpboot/sles9_x86_sp3/pxelinux.0) and looks for this resultant file. If it exists the daemon sends it to the client.
The TFTP directory is configured by the server_arg option -s in /etc/xinetd.d/tftp when starting the tftp inetd service.
6. Client requests boot menu
The client runs the boot file, which then tries to TFTP download the boot menu for this client. It will append the sub-directory /pxelinux.cfg to whatever directory it got the boot file from (giving something like /sles9_x86_sp3/pxelinux.cfg, and uses its IP address in hexidecimal as the file name. If this file is not found, then it looks for the file 'default'. For example:
- TFTP request for /sles9_x86_sp3/pxelinux.cfg/C0A86465
- If not found, TFTP request for /sles9_x86_sp3/pxelinux.cfg/default
7. Server sends boot menu
The server looks in the TFTP directory for the requested file, and sends it back to the client.
8. Client gets any other required files
The boot menu probably references other files (for example, a text file menu.lst to display as the menu). Any such files are TFTP downloaded from the directory the original boot file came from (e.g. /sles9_x86_sp3), not from the boot menu directory.
9. Client displays boot menu
The client displays the boot menu, and waits for a selection to be made, or times out and chooses a default. For an autoinstallation the selection will include the following options:
- install=nfs://<server-ip>/<source_media_directory>
- autoyast=nfs://<server-ip>/<autoyast_profile>
There maybe some drivers needed as well, for example for network card or disk controllers. An example selection might be:
label install
kernel linux
append initrd=initrd splash=silent showopts insmod=tg3 install=nfs://192.168.100.100/autoyast/source/sles9_x86_sp3/sles9_x86_sp3_media
autoyast=nfs://192.168.100.100/autoyast/autoinstall/v1.0/configs/dc7600.xml
10. Client boots selected option
The client TFTP downloads the specified kernel and init ram disk, and boots a version of linux that can do automated installs. The AutoYAST profile is read to get the configuration to install, and the install directory is used as the source for the installation.
