Self-Repair features for Ubuntu Linux OS

Registered by dark2star on 2007-09-03


my idea is to provide the os layer of Ubuntu with a self-repair service. This includes functions like boot-sector, network, X11 and run-level-config as well as some selected tools. The support could be extended to the system directories.

The functionality is quite simple, a regular job (daily, weekly, monthly...) checks all involved files for changes. If a change is detected, the admin user is prompted whether the change is intended and did produce the desired result. If he says "yes", a repository is checked in with the changes (like CVS or Subversion). If he says "don't know" the change is not recorded and if he says "bad, repair" the repair function is opened. The repair function can also be accessed when booting from an install-CD. It presents the admin with a list of changes and a history for the corresponding change. He can choose a setting and the whole system is rolled back. In case of a system error, some automatic config roll-back mechanism is possible.

This mechanism is mainly for servers and publicly accessible computers (schools, etc.) but should also prove useful for home users with "experimentative kids". It allows a damaged system to repair itself with admin intervention only to start the repair, not to actually do it. Any computer with a broken configuration can be repaired to a previously working state within minutes. Just for an example, repairing the boot sector after Installation of some DOS brands would be 1) boot from Ubuntu CD, 2) Click on repair, 3) Click on OK and 4) reboot from disk. The system would also allow "cloning" of configuration between several computers by just using one central repository.

For school computers or server systems some kind of auto-repair point could be defined by the admin, which the system will automatically revert to upon detection of changes.

What's to do for the implementation? I do see the following steps:
1. a repair service for checking the config, enacting commit and restore actions
2. a command-line user interface
3. a graphical user interface
4. definition of some kind of system repair resource definition (some XML file schema)
5. a set of definitions for likely sets of config files.

Many of the mechanisms necessary for this task are already present, they just need to be linked. For example, the repair service (1) can be implemented using some shell scripting (*sh, perl, ...), Subversion and the cron deamon. This would actually include the command-line interface (2) at once. The main task for this feature to work is the definition of config file sets (5) to be used for system resource description.

Thanks for the great Ubuntu Distro!
Bernhard Agthe

Blueprint information

Not started
Needs approval
Series goal:
Milestone target:

Related branches



Boot-Repair is a small, simple and efficient GUI to fix GRUB in 1 click. It does not totally meet this blueprint, but may solve a part of it.


Work Items

This blueprint contains Public information 
Everyone can see this information.