Preboot Execution Environment (PXE)

A system that supports PXE can retrieve a small binary program over the network and execute it. The small program can then be used to retrieve further informations and possibly boot into an operating system.

  • configure system bios to "boot from network"
  • system executes dhcp requests. DHCP Servers provide boot options boot-server (66) and boot-file (67).
  • system retrieves boot-file (for example /csco/pxe/pxelinux.0) from boot-server (which is a TFTPServer, for example fsl00c)
  • it then executes the boot-file

PXELinux

PXELinux is a flexible method to retrieve a linux kernel and ramdisk (initrd, initramfs) from the network.

After retrieving and executing pxelinux.0 it searches for a configfile on the TFTPServer, subdirectory csco/pxe/pxelinux.cfg. It has an inbuild order to locate one
  1. hardware-type + mac-address. For example 01-00-13-95-aa-bb-cc (01 is for ethernet).
  2. ip address as hex, for example 192.168.1.1 is C0A80101
  3. repeatedly dropping the last character from this hex address, C0A8010, C0A801, C0A80, ... C
  4. default
  5. error message, five minute delay, reset

At GSI we use exact IP Adresses for the configuration. This allows us to replace hardware in case of failure without modifying the PXE configuration.

Sample configuration file
DEFAULT linux
# display boot prompt
PROMPT 1
# 10 second timeout
TIMEOUT 100

DISPLAY help.txt

LABEL linux
        MENU LABEL linux ramdisk
        KERNEL kernel
        APPEND initrd=ramdisk.img ramdisk_size=32768 root=/dev/ram
LABEL menu
        KERNEL menu.c32

This will display the content of help.txt. Then shows a prompt. After ten seconds it will execute the entry default. Default points to linux. Typing menu will display a selectable menu with all known labels

A complete folder tree with kernel and ramdisk. See TFTPServer for the paths prefix.
/pxe/pxelinux.0
/pxe/help.txt
/pxe/menu.c32
/pxe/pxelinux.cfg/8CB584FC -> symlink on hostname
/pxe/pxelinux.cfg/hostname -> symlink on default
/pxe/pxelinux.cfg/default
/pxe/kernel
/pxe/ramdisk.img

User Configuration

to configure a frontend computer

  1. register the computer with csco-in (provide information which TFTPServer should be used)
  2. configure bios of frontend computer to "boot from network"
  3. read and follow /common/tftp/csco/pxe/pxelinux.cfg/readme.txt which provides a manual to add new FECs
  4. create the needed symlinks in the pxelinux.cfg folder (subfolder csco/pxe/pxelinux.cfg) on the TFTPServer

if anything besides basic linux should run on the computer, configure NFSinit
Topic revision: r4 - 19 Jun 2018, AlexanderSchwinn
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback