The Pre-Flight Installer, aka 'pfi', is a set of scripts and configuration files which 'bootstrap' the install environment before the BSDInstaller starts. They consist of:
- pfi, an RCNG script
- pfi.conf, a configuration file
- installer, a shell script
The entire process, in a nutshell, is something like:
- The LiveCD boots.
- The boot process runs all the RCNG scripts in the order they dictate.
- Near the end of this process, pfi is run. It:
- looks for the file pfi.conf, first on any MS-DOS formatted floppy disks that may be present, then on any MS-DOS formatted USB "keychain" disks that may be present, then finally in /etc. Any one of these configuration files only overrides the default settings from /etc/defaults/pfi.conf. If no pfi.conf file is found, all the defaults are used unchanged;
- copies the configuration it is using to /etc/pfi.conf for convenience, so that it doesn't have to e.g. access the floppy again; and
- does some special things based on the configuration it is using, for example, setting the root password or starting an sshd server. Please refer to etc/defaults/pfi.conf for a full list of pfi.conf settings.
- Next, the user logs in and starts the installer script. On some LiveCD's, this is as easy as logging in as a special user (for example, the "installer" user on the DragonFlyBSD LiveCD.)
- The installer script also reads its configuration from /etc/pfi.conf, which pfi may have copied there from a floppy etc.
- The installer script uses this configuration to determine which frontend to start.
- It then starts both the backend and frontend and waits for the backend to terminate.