firstaidkit (1) - Linux Manuals

NAME FirstAidKit

.SHSYNOPSIS firstaidkit [options] [-a | --auto] [fix | FLOW ]
firstaidkit [options] [-f | --flow ] PLUGIN FLOW
firstaidkit [options] --print-config
firstaidkit [options] --list
firstaidkit [options] --info <plugin>

.SHDESCRIPTION Firstaidkit executes simple and common recovery tasks in an automated way. The basic elements in the system are: backend plugin system, the plugins and the plugin flows. The plugins can be thought of as individual recovery units. Each unit having the possibility of holding varioius types of processes, but still focused on one specific subsystem. There can be a plugin for password recovery for example. This plugin would take care of all the possible processes related to password recovery. In the password recovery plugin there would only be one process: to recover the password. But other plugins might need to executing more than one process. Like if you would like to diagnose before actually fixing something.

Plugin flows are structures that represent the different processes. You will usually find two default flows in a plugin (with known exceptions): The diagnose flow and the fix flow. When in diagnose no changes to the system should be done. Only information should be taken from the system and output through the firstaidkit reporting system (this basically means a log file or stdout. It all depends on the configuration parameters when executing firstaidkit). When in fix mode an attempt will be made to modify the system to fix whatever was found to be missconfigured.

Currently firstaidkit has 6 modes of operation:

Automated Default. -a, --auto
This mode runs all the plugins that firstaidkit can detect in the paths (The paths can be set in the config file). It will run the flow denomintated "diagnose" for all these plugins. When a plugin does not have a diagnose flow (Some plugins like passwd don't have it), it will be ignored. The general idea with this mode is to see what is going on in different parts of the system. The behavior of this mode can be modified by passing on of two parameters: The flow name or "fix".

When fix is specified, it will run the fix flow of all the plugins. This is *not* the default behavior because this might not be what the user wants. A more sensible approach is to list the possible problems and then for the user to run individual plugins to address all of the listed problems or a subset of them.

When FLOW is specified, the flow named FLOW is run in each plugin. As with the default behavior, the plugin is ignored when the flow is not there.

Flow Selection. -f PLUGIN FLOW, --flow PLUGIN FLOW
Basically lets you specify the plugin to run and the flow that you want to run on that plugin. This implies --nodeps.

Print Configuration. --print-config
Lists the resulting configuration. Firstaidkit allows you to specify configuration elements in a lot of places. This options just lests you see what firstaidkit ends up with after analyzing all the configuration elements.

List Plugins. --list
Make a list of all the plugins.

Individual Plugin Info. --info PLUGIN
Get information fro a specific plugin.


-c PATH, --config=PATH
Location of configuration file.
-r PATH, --root=PATH
Location of the root directory.
Location of different plugin path. This option can be used more than once. firstaidkit will look for plugins in all the paths specified by this option.
-v, --verbose
Verbose mode.
Select METHOD as a log method.
-x PLUGIN, --exclude=PLUGIN
Exclude PLUGIN from the run.
-g GUI, --gui=GUI
Select GUI as front end to show results.
-h, --help
Show help.
-F FLAG, --flag=FLAG
Setup startup flags.
This makes firstaidkit ingore dependency between plugins.
This is the way firstaidkit passes arguments to plugins. You can actually specify plugin and flow. Although flow is not necessary. The arguments and their meaning are defined by the plugin. Where ARGS is a space separated string that begins with the plugin name and/or the flow name.

ARGS="plugin_name[/flow_name] arg1 arg2 arg3"

So if you wanted to pass "--installto-devs=/dev/sda" to the grub plugin in the fix flow, you would pass the following arg to firstaidkit:

--plugin-args="grub/fix --installto-devs=/dev/sda"


For most of the situations its probably better to execute
the plugins individually.  You manage this by using the -f
firstaidkit -f xserver diagnose
Execute the diagnose flow in a specific plugin. This line will execute the xserver plugin in diagnose mode.
firstaidkit -a --nodeps
Execute all plugins without dependencies. This will execute all plugins without looking at the dependencies between them. This is good if you want a general diagnose of the system.
firstaidkit --print-config
List the configuration.
firstaidkit --list
List of plugins.
firstaidkit --info xserver
Request a specific info from a plugin.
firstaidkit -a -e xserver
Exclude a plugin from an action. This will execute every plugin except the xserver.
firstaidkit --plugin-args='grub/fix recover-devs=/dev/sda' -f grub fix
Runs the plugin plugin in the fix flow and passes it the "recover-devs=/dev/sda" argument.


Please report bugs at


Martin Sivak <msivak [at]>
Joel Granados <jgranado [at]>