This specification will discuss what's needed to allow a system backup tool to automatically discover what files should be backed up, given the packages that have been installed on the system.

The changes described here can form the foundation for a more advanced and complete disaster recovery system.


Providing an easy-to-use backup solution that's suitable for non-expert users is important.

The aim is for the system to know what needs to be backed up, rather than initially leaving it to the user to know what needs to saved.

Use cases

  • Jack is a new Ubuntu user. He has been using his system for a week now, managed to sort everything out by means of getting his favorite theme set up and desktop behavior. He has also already got quite a few important email messages and some other bits of information currently stored on his Desktop. He has also installed a few extra packages, an apache webserver, has created a website and installed 'gallery' for his images. John would like to backup all of his data.
  • Monique wants to install a experimental software package. She would like to be able to save her data before upgrading so that she can go back to the stable version if it doesn't work out.
  • Tom is upgrade-testing for the next verison of Ubuntu. A couple of the packages have changed their data formats and include 'converters' which will automatically convert existing data into the new format. If Tom finds a bug in this process he would like to be able to easily repeat it.
  • Jane is a system administrator. She has been asked to install many software packages for her users and needs to have her systems are properly backed up. She would also needs an easy way to migrate user data when new systems are commissioned.


This specification covers the changes that are required to the Debian packaging system to allow the use cases to be achieved.

The following are within the scope of this specification:

  • Changes to dpkg, the Debian package manager
  • Changes to Debian packaging tools

Out of scope and planned future Work:

  • Backup applications


Additional information is to be added to Debian packages which contains the default directories and files which the package maintainer indicates should be backed up.

  • Add a 'debian/user-data' file to the Debian package, which contains the default directories and files which should be backed up.
  • Provide a mechanism for storing this information with the package system information.
  • Allow a system administrator to change, add or delete entries in the list of user-data locations.


This feature can be added in a couple of steps, and doesn't need to be implemented immediately into the Debian package management system.

  • Create additional packages for common packages, which contains the additional information and scripts required to backup the data in a particular package. These backup package have a 'requirement' that the original package is installed and any other required tools not in essential.
  • Create backup library which contains utility programs used by backup packages.
  • Send backup functionality to upstream package maintainer.
  • Write guidelines on how include data backup functionality in new packages.


Data preservation and migration

Help Needed

  • What if I wanna help ?


BackupOfPackageUserData (last edited 2008-08-06 17:00:18 by localhost)