Redirected from page "FriendlyRecovery"

Clear message

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

  • Launchpad Entry: friendly-recovery

  • Packages affected: whiptail, recovery-mode (new package), upstart-compat-sysv.


When the user selects the "(recovery mode)" item from the boot loader menu they will be taken to a ncurses-based menu where they can select a number of options to repair broken aspects of their system.

The items will be provided by scripts implementing a simple plug-in protocol. Packages can add menu items by simply putting a compliant script in the appropriate directory.

One such item will be "give me a root shell" so no functionality is lost with respect to the current behaviour.


Currently when the "(recovery mode)" item is selected the user is dropped to a root shell. This is far from helpful.

Use Cases

  • The user has forgotten their password and wants to reset it.
  • The user has trashed their X config and wants to reconfig.
  • The user has done a partial upgrade and their system isn't booting properly. They want to complete the upgrade.
  • The user just wants a root shell prompt.


A new package "recovery-mode" will be created in main and included in the default install. A small change will be made to upstart to check for this script and invoke it instead of a shell in the event of a single user login. There may be changes to whiptail if it is missing required functionality.


  • /etc/event.d/rcS-sulogin checks for the existence of the executable /usr/share/recovery-mode/recovery-menu and invokes it if available or a shell otherwise.
  • recovery-menu looks in /usr/share/recovery-mode/options
  • each executable in this directory is invoked with the "test" command-line parameter.
    • if it returns zero it should print a name to stdout to be added to the menu
      • like "Recover broken X configuration".
    • if it returns one it will not be added to the menu
      • makes sense if the script detects that nothing is broken
  • the menu is shown with the items that returned zero along with their names
  • when the user picks an item the same script is executed with no parameters
    • when the script exits, the "test"ing is redone and the user is returned to the menu
    • if the script exits with a status of 42 (magic number) then the boot-up immediately resumes
      • this should not normally be used
      • it is for things like "continue boot with safe video mode"


Implementation is in progress. Some other package maintainers have been notified and plan to provide their own plug-in scripts.

See also


FriendlyRecoverySpec (last edited 2011-09-30 17:22:54 by vorlon)