fai-chboot(8)
๐ fai-chboot(8) โ the manual page, but make it slay โจ
okay bestie, so this is fai-chboot from the System Manager's Manual โ it lives in section 8 of the manual, which is the "system administration commands" section, iykyk ๐
๐ธ NAME ๐ธ
fai-chboot โ manage the network boot configuration files ๐ฅพโจ
๐ฆ SYNOPSIS ๐ฆ
fai-chboot [OPTION]... KERNELNAME HOST...
fai-chboot -l[e|d|t|o|g] [PATTERN]
fai-chboot -e HOST...
fai-chboot -d HOST...
fai-chboot -c HOST|TEMPLATE HOST|TEMPLATE...
fai-chboot -i [OPTION]... HOST...
fai-chboot -I [OPTION]... HOST...
fai-chboot -a [ACTION]... HOST...
like, pick a vibe, pick a form, go off ๐ซ
๐ DESCRIPTION ๐
This command creates the configuration files for network booting using pxelinux and DHCP. no cap, that's literally its whole job and it eats ๐
KERNELNAME is the file name of the kernel that will be booted. This kernel will mount the root filesystem via NFS. You can add extra kernel parameters and define some FAI-specific flags. For each host, one configuration file gets created. The file name of the configuration file is its IP address in upper case hexadecimal, or its MAC address with the prefix 01-. HOST can be a host name, an IP or a MAC address, or the keyword default. periodt ๐ซถ
โจ OPTIONS โจ
-aaction โ Same as-ibut also setsFAI_ACTION. two things at once, main character energy ๐-Bโ Set default values forFAI_FLAGS. This is the same as-f verbose,sshd,reboot๐-cโ Copy an existing config file (called a template) to one or more hosts and enable them for network booting.fai-chbootperforms these substitutions if you use$IPor$HOSTin your template:$IP: the IP address as dotted decimal$HOST: the assigned hostname
it's giving mad-libs but for boot configs, obsessed ๐ฆ
-CCFDIR โ Use CFDIR as the configuration directory. Default is/etc/fai. You can also set the environment variableFAI_ETC_DIR. ๐-DDIR โ Set the directory for the network boot configuration to DIR. The default value is/srv/tftp/fai/pxelinux.cfg/. ๐-dโ Disable the PXE configuration for the specific HOST. This renames the config file adding the suffix.disableto it, making PXE boot fall back to the default. ๐-eโ Re-enable network booting for HOST. This renames the config file removing the suffix.disablefrom it, so the next time it uses its own PXE configuration. the glow-up arc ๐ง-Eโ AddFAI_FLAG initial. This causessetup-storageto disable preserving partitions. This may erase (therefore option E) data on the disk.
โ ๏ธ bestie this one can literally delete your data. "E" is for Erase. you have been warned ๐ญ
-ffai_flags โ SetFAI_FLAGS. The flags must be comma separated. ๐ธ-Fโ Set default values forFAI_FLAGS. This is the same as-f verbose,sshd,createvt. ๐-hโ Show simple help and version. ๐-iโ Set parameters for booting the FAI install kernel (proper initrd, boot from nfs). This does not setFAI_ACTION. ๐ซ-Iโ Same as-ibut also setsFAI_ACTION=install. So a fully automatic installation will be performed.
๐จ ATTENTION! This will erase most of the data on the local disks of the install clients. like, the whole disk. gone. fr fr ๐
-kparameters โ Set kernel append parameters. ๐ง-lโ List the configuration for all hosts in short format. If PATTERN is given, list only hosts matching PATTERN. Lists hostname,FAI_ACTION, kernel name and IP address in hex. Use-leto list only enabled hosts,-ldto list only disabled hosts,-ltto list only templates,-loto list only hosts that do not match any of the previous categories, and-lgto list the configuration for all hosts, sorted and ordered by groups (enabled, disabled, templates, others).
๐ Note that a combination of multiple-loptions is not supported, and that in listing mode no other action will be performed. one-lat a time, bestie, we don't do chaos (ok we do, but not here) ๐
-Lโ List the configuration for all hosts. Also list the kernel append parameters. If PATTERN is given, list only hosts matching PATTERN. the โจdeluxeโจ listing ๐ฅ-nโ Do not create configuration but show what would be done. This also enables the verbose flag. window shopping ๐๏ธ-oโ Do localboot via PXE. Do not boot via network card, but use next boot device which is specified in the BIOS. Normally this is the local disk. ๐ป-pโ Preserve existing config files. The default is to overwrite an existing config file. ๐-Pโ Add the pxelinux optionIPAPPEND 6to the config file. This will add the two variablesBOOTIFandSYSUUIDto the kernel command line, that are also defined as variables inside FAI.
Example:
BOOTIF=01-08-00-27-12-34-56
SYSUUID=00234567-1111-2222-3333-123456789000
look at those beautiful hex strings ๐๐ฆ
-qโ Query the absolute path and filename of the PXE configuration file for a host or a list of hosts. ๐-sPATTERN โ Match PATTERN to determine which kernel and initrd to use. Useful if multiple kernel versions are available. ๐-Sโ Same as-ibut also setsFAI_ACTION=sysinfo. ๐-uURL โ SetFAI_CONFIG_SRCto URL. Setting this variable is mandatory for the operation of FAI. Seefai.conf(5)for the format of this variable. no URL, no party ๐-UURL โ Add URL to kernel and initrd file names.lpxelinux.0can use FTP and HTTP for getting these files. ๐-vโ Create verbose output. tell me everything, I want the tea โ
๐ EXAMPLES ๐
fai-chboot -l
List the configuration for all hosts.
fai-chboot -FSPv -u nfs://faiserver/srv/fai/config atom02
The host atom02 will boot the FAI install kernel but with FAI_ACTION sysinfo.
fai-chboot -l tmpl
All templates are listed.
fai-chboot -IBPv -u nfs://faiserver/srv/fai/config atom02
The host atom02 will be installed.
๐จ ATTENTION! All data on the local hard disks are lost in most cases, because we want to install a new system. After the installation the host automatically reboots. rip to that disk, but congrats to the new install ๐โก๏ธ๐
fai-chboot -vSP -s6.1 atom04
Booting kernel vmlinuz-6.1.0-22-amd64
append initrd=initrd.img-6.1.0-22-amd64 ip=dhcp
atom04 has 1.2.3.4 in hex 01020304
Writing file /srv/tftp/fai/pxelinux.cfg/01020304 for faiserver
๐งฎ the hex math is mathing
fai-chboot -IFv -u nfs://faiserver/srv/fai/clusterconf node03
node03 will be installed using the configuration space /srv/fai/clusterconf, which is mounted from faiserver via NFS.
fai-chboot memtest86+ atom02
The host atom02 will boot the memory test. Install the package memtest86+ and copy the executable memtest86+.bin to /srv/tftp/fai without the .bin suffix. ๐ง โจ
fai-chboot -o default
All hosts, that do not have a PXE configuration for their IP-address will do a localboot, i.e. booting from local disk.
fai-chboot -vc lenny64 james007
This command will tell the host james007 to use the template called lenny64. Beforehand, you have to manually create the template and save it to /srv/tftp/fai/pxelinux.cfg/lenny64.tmpl. yes, manually, bestie, do your homework ๐
fai-chboot -iFPv atom02 atom03 dom kueppers
The hosts atom02, atom03, dom and kueppers will boot the FAI install kernel. FAI_ACTION will not be set unless specified with option -k or -I. You can also use the script class/LAST.var on the install server to set FAI_ACTION.
fai-chboot -IFv -U http://faiserver/fai -u nfs://faiserver/srv/fai/config demohost
The host demohost will receive the kernel and initrd via the HTTP (which is much faster than using tftp). On the faiserver you have to run a web server and create a symlink using:
$ ln -s /srv/tftp/fai /var/www/html/fai
speedrun strats ๐โ๏ธ๐จ
๐ NOTES ๐
Currently only PXE boot is supported but also with UEFI. we contain multitudes ๐
โญ SEE ALSO โญ
/usr/share/doc/syslinux/pxelinux.doc.gz โ The pxelinux documentation.
This program is part of FAI (Fully Automatic Installation). See the FAI manual for more information on how to use fai-chboot. The FAI homepage is https://fai-project.org. ๐
๐ AUTHOR ๐
Thomas Lange <lange@cs.uni-koeln.de> ๐
and that's the whole page, bestie!! ๐
this lil' masterpiece is from FAI 6, dated March 2025 โ so if you're reading this in a group chat screenshot, tell them it's the fai-chboot(8) page and it ate. no crumbs. ๐โจ๐ฆ๐
๐ฆ where this page comes from
- debian trixie: fai-server 6.4.3
- ubuntu resolute: fai-server 6.4.3ubuntu1
- ubuntu stonking: fai-server 6.6ubuntu1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms