From Fedora Project Wiki

First Aid Kit


Firstaidkit is an automated recovery tool that brings together common recovery processes and applies them to a system. The way that Firstaidkit handles the recovery processes is by means of plugins. The idea being that a plugin will focus on a particular issue in the system, like grub, init scripts or Xserver. Firstaidkit is designed to automatically fix problems while focusing on maintaining user data integrity. In other words, Firstaidkit will try its best to fix your system while giving you the possibility to revert the changes.


  • Name: MartinSivak / JoelGranados FIXME: please link names to wiki home page

Current status

  • Targeted release: Fedora 10
  • Last updated: 2008-07-20 (version 1.2.1 is in rawhide)
  • Percentage of completion: 95% . The only thing that keeps me from putting 100% is the fact that we keep doing small changes to the backend. Additionally lots of plugins are still to come, but most, if not all, the backend work is done.

Detailed Description

For a long time, people have asked for a task based approach to rescuing their systems. Rescue mode is an okay start, but we can do a lot better by automating simple and common recovery tasks. Obvious things would be

  • dmraid rebuild and recovery
  • reinstall bootloader
  • recreate the initrd
  • reinstall some "base" packages

Implementing these as individual pieces rather than entirely tying them to anaconda would be the most beneficial way to do it. Then we can tie them together with a relatively simple "Fix my System" menu and also make use of them from a graphical version of the same on the LiveCD.

See the upstream project at

Benefit to Fedora

Makes it easier for users to rescue their systems in case of problems


  • FirstAidKit is planned as a package. It will be a pluggable application that can house all kinds of plugins. Each plugin will be one automated recovery task.

Test Plan

Testing Finding out that the plugins actually work in a running system, liveCD and rescue mode is probably the best plan.

Steps to test:

* Pick a plugin to test
* Intentionally break the subsystem that the plugin is targeted at.
* Run firstaidkit to try to fix that subsystem
* Report any strangeness in the behavior of the execution and/or the fix itself.
* Repeat for liveCD, rescue mode and running system.

User Experience

In case of any mishaps with the user's system. He/she should be able to run the rescue environment or livecd and use the FirstAidKit environment. Either by running an automated "Fix whatever is wrong with my system" process, or specific tasks from specific plugins for the more advanced user.


None for now.

Contingency Plan

FIXME--imost likely you can explain that this is not applicable because it is a new feature that is not depended on by other applications.


Pydoc generated from the code to ease the plugin developer experience and user documentation.

Release Notes

FIXME--include rough draft of how the release note should read. Reusing some of the wording from the summary and description would work well.