Using recovery modes

Using recovery modes

Ubuntu Core 20 is inherently robust. But if data-corruption issues do occur, even on boot or data partitions, it can still access a recovery mode to help repair, restore or reinstall an impaired device.

These recover modes can be accessed in three different ways:

  • Recovery chooser:
    Start or reboot the device with the ‘1’ key held on a connected keyboard
  • Snap reboot:
    Run snap reboot on the device with either --recover or --install arguments.
  • Snapd REST API:
    Use the REST API to call either the `recover’, ‘install’ or ‘reboot’ functions.

Note: Device manufacturers using Ubuntu Core 20 may choose to implement alternative methods to access recovery functionality. These will be specific to those devices.

Recovery chooser

To access the recovery chooser, start or reboot the device with the ‘1’ key held on a connected keyboard. If the chooser fails to launch, try pressing 1 repeatedly from boot. It needs to be captured by Ubuntu Core boot process.

After the initial boot process completes, a status screen will appear showing “System mode selection triggered. Proceed to select one of the available systems and actions.”

The menu system requires that you tab or cursor to highlight your chosen option. Ensure ‘OK’ is highlighted and press Enter to continue, after which you’ll be presented first with the recovery chooser and the option to either run normally, enter recovering mode, or reinstall.

Selecting an option followed by ‘Confirm’ will reboot the device into the selected mode (see below).

snap reboot

Alongside using sudo snap reboot to reboot the system, the following arguments can be added to select a recovery mode with or without an additional system label for the target system:

  • --run
  • --install
  • --recover

The recover and run modes are only available for the current system.

When called without a system label, reboot will use the current system to enter the given mode. System labels are listed with the snap recovery command:

$ sudo snap recovery
Label    Brand       Model                Notes
20201117 <user-name> ubuntu-core-20-amd64 current

To reboot the above system into recovery mode, for example, enter the following:

$ sudo snap reboot --recover 20201117
Broadcast message from root@ubuntu (Wed 2020-11-25 13:15:51 UTC):

reboot scheduled to update the system
The system is going down for reboot at Wed 2020-11-25 13:25:51 UTC!

Reboot into "20201117" "recover" mode.

Couple minor points I noticed:

  • The text mentions " If reinstall is selected". But as noted, the command line arg is --install, so the “reinstall” is a little confusing.
  • This is not strictly true " The snap reboot command requires both a label for the target system and an additional argument to specify the recovery mode to reboot into". You can still just run sudo snap reboot to reboot the current system normally
  • You can run just sudo snap reboot --recover to reboot into recovery mode without specifying the label of the recovery system (at least when there is only one recovery system).
1 Like

Thank you for looking through the document and for the corrections. I’ve updated the text to hopefully fix the erroneous text.