fai(8)
β¨ fai(8) β Fully Automatic Installation β¨
okay bestie, sit down, hydrate, because this one is the main character of the whole FAI universe π it lives in the System Manager's Manual section 8, and it's literally the program that installs a whole OS while you're busy doing your skincare routine.
πΈ NAME πΈ
fai β Fully Automatic Installation π«Ά
π SYNOPSIS π
fai [options] ACTION
fai [options] dirinstall DIRECTORY
fai [options] install DIRECTORY
π DESCRIPTION π
so FAI is the icon, the moment, the blueprint β it does non-interactive initial installation and online maintenance (aka "softupdates" β¨) of operating systems, all according to a configuration you define. no clicking through installers, no vibes-based partitioning, just config. obsessed.
fai starts an fai-action, like an installation or a softupdate. if the variable FAI_ACTION is defined, that's the action it performs. but the command line argument overrides the value of FAI_ACTION β cmdline stays winning, periodt. and you can also define your own actions, which get executed when you specify them. custom actions? we love to see it π
π OPTIONS π
ACTION is required. no action, no slay.
-C CFDIRβ useCFDIRas the configuration directory. the default is/etc/fai. π-c|--class class[,class]β define classes! multiple classes have to be comma separated. if you don't specify this, it uses the shell environment variable$classesinstead (and those are space separated). the first class has the lowest priority. heads up though: you need the scriptclass/01-classesin your config space for this to actually work, because-conly sets the variable$cmdlineclassesβ it's giving "I just set the variable, the script does the rest" energy π-h|--helpβ shows help, version and a summary of options. the polite little "what does this do again" button π-N|--newβ renews the list of defined classes. by default FAI uses the list of classes that was created during the first installation, and it skips callingfai-class(1). you need this option for the first softupdate if the system was not installed with FAI, and you can also use it in subsequent runs. so like, refresh button but for classes β¨-s|--cspace <URL>β the URL of the config space. checkfai.conffor more info on the format and which types of protocol are supported. this overrides the setting ofFAI_CONFIG_SRCin/etc/fai. π₯-u|--hostname <HOSTNAME>β use this hostname instead of whatever thehostnamecommand spits out. super useful with thedirinstallaction, where you wanna manually define a hostname that should be used for defining classes and for the network setup and other stuff. because bestie, in that situation you do not want the name of the host where you ranfai dirinstallβ programs in a chroot, or in a virtualized OS instance, should run with their own name and install their own set of classes. identity theft is not a vibe π-v|--verboseβ creates verbose output. it's giving "tell me everything" π¬
π ACTIONS π
install
starts a fully automatic installation:
- setup the fai environment (create ramdisk, get configuration data,...)
- define classes and variables
- partition the local hard disk and create file systems
- install new software packages
- call configuration scripts
- check and save the logfiles
sysinfo
starts a system rescue:
- setup the fai environment (create ramdisk, get configuration data,...)
- define classes and variables
- do different types of hardware detection and print hardware info
- save the logfiles
softupdate
starts a softupdate:
- fetch FAI configuration according to
/etc/fai/fai.conf - define classes and variables
- update the installed packages
- install new software
- call configuration scripts
- check and save the logfiles
inventory
print hardware inventory:
- setup the fai environment
- define classes and variables
- List information about CPU, RAM, network devices, hard disks
- save the logfiles
dirinstall [DIR]
Installation into a directory. this is nearly the same action as install, except it skips the task that partitions the hard disks and creates the file systems. (very "no disks were harmed" of it π¦)
classes can be defined with option -c, or by giving the hostname with -u or --hostname and enabling automatic definition by class scripts from hostname with -N. and listen β (Without -N class scripts aren't executed). that's a hard fact, not a suggestion π
π¨ NOTES π¨
running with action "install" on a running system will almost certainly destroy it. πππ like, genuinely. that's not a maybe. do not do that to your daily driver, bestie.
π EXAMPLES π
fai -v -s file:///srv/fai/config -cDEFAULT,FAIBASE dirinstall
/srv/etchroot
this command will do an installation into the directory /src/etchroot. π«Ά for defining variables, selecting the software packages and calling the customization script, the classes DEFAULT, FAIBASE and LAST are used. ate and left no crumbs.
π§ SEE ALSO π§
This program is the central part of FAI (Fully Automatic Installation). See the FAI manual for more information on how to use FAI. The FAI homepage is https://fai-project.org β go read it, iykyk β¨
π AUTHOR π
This manual page was written by Henning Glawe <glaweh@physik.fu-berlin.de> and Thomas Lange <lange@cs.uni-koeln.de>. absolute legends, give them their flowers π
and that's the whole page, bestie!! π this was FAI 4, from December 2013, and it's part of the System Manager's Manual as fai(8). mwah, go install something responsibly π
β¨
π¦ where this page comes from
- debian bookworm: fai-client 6.0.3+deb12u1 Β· GPL-2.0-or-later
- debian trixie: fai-client 6.4.3 Β· GPL-2.0-or-later
- ubuntu noble: fai-client 6.0.5ubuntu1 Β· GPL-2.0-or-later
- ubuntu resolute: fai-client 6.4.3ubuntu1 Β· GPL-2.0-or-later
- ubuntu stonking: fai-client 6.6ubuntu1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms