TFTP files and directories¶
As part of the provisioning process, test systems fetch boot loader images and configuration files over TFTP from the Beaker lab controller. This section describes all the files under the TFTP root directory that the beaker-provision daemon either creates, or relies on indirectly, during the provisioning process.
Boot loader images¶
These images must be supplied by the Beaker administrator and copied into the TFTP root directory manually (with the exception of pxelinux.0). The Cobbler project provides pre-compiled binaries of common boot loaders. Many Linux distributions also package these boot loaders.
When Beaker provisions a system it creates a symlink bootloader/fqdn/image pointing to one of these images, depending on the value of the netbootloader= kernel option (see Kernel options). Alternatively, the DHCP boot filename option can be hard-coded to point at one of these images (see Adding your system to Beaker).
- pxelinux.0
Recommended location of the PXELINUX image, used for x86-based systems with BIOS firmware. PXELINUX is a network boot loader developed as part of the Syslinux project.
If this file does not exist, Beaker copies the PXELINUX image from the Syslinux package to this location so that x86 BIOS systems can be provisioned out of the box.
- grub/grub.efi
- Recommended location of the EFI GRUB image, used for x86-based systems with UEFI firmware.
- yaboot
- Location of the Yaboot image, used for PowerPC systems.
- elilo-ia64.efi
- Location of the ELILO image, used for IA64 systems.
- aarch64/bootaa64.efi
- Location of the GRUB2 boot loader image for 64-bit ARM systems.
- boot/grub2/powerpc-ieee1275
- Location of the GRUB2 boot loader and supporting files for PowerPC (PPC64) systems.
Boot loader configuration directory¶
New in version 20.
When Beaker provisions a system, it creates a subdirectory bootloader/fqdn under the TFTP root directory containing the following files.
- bootloader/fqdn/image
- Symlink to the desired netboot loader image, as specified in the netbootloader= kernel option.
- bootloader/fqdn/etc/0a010203
- Configuration for Yaboot.
- bootloader/fqdn/grub.cfg-0A010203
- Configuration for GRUB2 (used by 64-bit ARM and PowerPC systems).
- bootloader/fqdn/grub.cfg
- Default configuration for GRUB2 (used by 64-bit ARM systems).
- bootloader/fqdn/petitboot.cfg
- Configuration for Petitboot.
- bootloader/fqdn/pxelinux.cfg/0A010203
- Configuration for PXELINUX.
- bootloader/fqdn/pxelinux.cfg/default
- Default configuration for PXELINUX.
- bootloader/fqdn/ipxe/0a010203
- Configuration for iPXE.
- bootloader/fqdn/ipxe/default
- Default configuration for iPXE.
Legacy boot loader configuration files¶
Beaker also creates the following boot loader configuration files for compatibility reasons. These locations will be used when a system’s DHCP configuration specifies a hard-coded boot filename instead of using Beaker’s configurable netboot loader support.
- pxelinux.cfg/0A010203
- Configuration for PXELINUX. The filename is the IPv4 address of the test system, represented as 8 hexadecimal digits (using uppercase letters).
- ipxe/0a010203
- Configuration for iPXE. The filename is the IPv4 address of the test system, represented as 8 hexadecimal digits (using lowercase letters).
- grub/images
- Symlink to the images directory.
- grub/0A010203
- Configuration for EFI GRUB. The filename follows the PXELINUX naming convention.
- ppc/0a010203
- Symbolic link to the Yaboot image. The filename is the IPv4 address of the test system, represented as 8 hexadecimal digits (using lowercase letters).
- etc/0a010203
- Configuration for Yaboot. The filename matches the boot loader symlink filename.
- bootloader/fqdn/petitboot.cfg
- Configuration for petitboot.
- ppc/0a010203-grub2
- Symbolic link to the GRUB2 boot loader. The filename is prefixed with the IPv4 address of the test system, represented as 8 hexadecimal digits (using lowercase letters).
- ppc/grub.cfg-0A1043DE; boot/grub2/grub.cfg-0A1043DE; grub.cfg-0A1043DE
- Configuration for GRUB2 for PowerPC (PPC64) systems. The filename is suffixed with the IPv4 address of the test system, represented as 8 hexadecimal digits (using uppercase letters).
- 0A010203.conf
- Configuration for ELILO. The filename follows the PXELINUX naming convention.
- arm/empty
- An empty file.
- arm/pxelinux.cfg/0A010203
- Configuration for 32-bit ARM systems. The filename follows the PXELINUX naming convention.
- aarch64/grub.cfg-0A010203
- Configuration for 64-bit ARM systems.
- s390x/s_fqdn; s390x/s_fqdn_parm; s390x/s_fqdn_conf
- Configuration files for System/390 virtual machines using “zPXE” (Cobbler’s zpxe.rexx script).
Other files in the TFTP root directory¶
- images/fqdn/
- Kernel and initrd images for the distro being provisioned. All the generated boot loader configurations point at the images in this directory.
- pxelinux.cfg/default
Default configuration used by PXELINUX when no system-specific configuration exists.
The Beaker administrator can customize this configuration, however it must fall back to booting the local disk by default (perhaps after a timeout) using the localboot 0 command.
If this file does not exist, Beaker populates it with a simple default configuration that immediately boots the local disk.
- ipxe/default
Default configuration available for chain loading by iPXE when no system-specific configuration exists.
The Beaker administrator can customize this configuration; however, it must fall back to booting from the local disk by default (perhaps after a timeout) using either exit, sanboot, or whatever works most reliably for the systems involved. Note that if a script is chain loaded, it will return if that script exits, It may be preferable to allow the called script to perform a boot from local disk by following the chain command with an exit.
If this file does not exist, Beaker populates it with a simple default configuration that immediately boots from the local disk.
- aarch64/grub.cfg
Default configuration used by 64-bit ARM systems when no system-specific configuration exists.
The Beaker administrator can customize this configuration, however it should exit after a timeout using the exit command.
If this file does not exist, Beaker populates it with a simple default configuration that immediately exits.
- ppc/grub.cfg
Default configuration used by PowerPC systems when no system-specific configuration exists.
The Beaker administrator can customize this configuration, however it should exit after a timeout using the exit command.
If this file does not exist, Beaker populates it with a simple default configuration that immediately exits.
- pxelinux.cfg/beaker_menu
- Menu configuration generated by beaker-pxemenu for the menu.c32 program (part of Syslinux). See Generating a boot menu for details.
- ipxe/beaker_menu
- Menu configuration generated by beaker-pxemenu for the iPXE scripts. Chain load this to get the full beaker install menu.
- grub/efidefault
- Menu configuration generated by beaker-pxemenu for EFI GRUB.
- aarch64/beaker_menu.cfg
- Menu configuration generated by beaker-pxemenu for 64-bit ARM systems.
- boot/grub2/grub.cfg
Default configuration for GRUB2 used by x86 EFI systems when no system-specific configuration exists.
The Beaker administrator can customize this configuration, however it should exit after a timeout using the exit command.
If this file does not exist, Beaker populates it with a simple default configuration that immediately exits.
- boot/grub2/beaker_menu_x86.cfg
- Menu configuration file generated by beaker-pxemenu for EFI GRUB2. Menu contains only x86_64 distros.
- boot/grub2/beaker_menu_ppc64.cfg
- Menu configuration file generated by beaker-pxemenu for EFI GRUB2. Menu contains only ppc64 distros.
- boot/grub2/beaker_menu_ppc64le.cfg
- Menu configuration file generated by beaker-pxemenu for EFI GRUB2. Menu contains only ppc64le distros.
- distrotrees/
- Cached images for the generated menus. The contents of this directory are managed by beaker-pxemenu.