[Bug 1821252] Re: systemctl set-default breaks recovery mode

Launchpad Bug Tracker 1821252 at bugs.launchpad.net
Mon Jul 8 07:22:27 UTC 2019


This bug was fixed in the package friendly-recovery - 0.2.38ubuntu1.1

---------------
friendly-recovery (0.2.38ubuntu1.1) bionic; urgency=medium

  [ Steven Clarkson ]
  * lib/systemd/system-generators/friendly-recovery:
    Symlink default.target to earlydir instead of normaldir to be
    able to access recovery mode even if default target has been set
    via systemctl set-default (LP: #1821252).

 -- Ioanna Alifieraki <ioanna-maria.alifieraki at canonical.com>  Fri, 21
Jun 2019 15:07:01 +0100

** Changed in: friendly-recovery (Ubuntu Bionic)
       Status: Fix Committed => Fix Released

** Changed in: friendly-recovery (Ubuntu Disco)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to friendly-recovery in Ubuntu.
https://bugs.launchpad.net/bugs/1821252

Title:
  systemctl set-default breaks recovery mode

Status in friendly-recovery package in Ubuntu:
  Fix Released
Status in friendly-recovery source package in Xenial:
  Fix Released
Status in friendly-recovery source package in Bionic:
  Fix Released
Status in friendly-recovery source package in Cosmic:
  Fix Released
Status in friendly-recovery source package in Disco:
  Fix Released
Status in friendly-recovery source package in Eoan:
  Fix Released

Bug description:
  [Impact]

   * A recovery mode boot is effectively a normal boot on any system
  that has ever had systemctl set-default run on it, i.e., the recovery
  kernel parameter does nothing. In particular, ubiquity calls systemctl
  set-default as part of the oem-config process, rendering recovery mode
  useless on any oem-configured machine.

   * This is a regression from previous behavior, where recovery mode
  would override a user-set default target.

   * This would also restore the intuitive behavior of this package. It
  is intended to be run by setting a kernel parameter for a one-time
  boot, and should therefore take priority over any other settings (such
  as configuring a different default target).

  [Test Case]

   * Run systemctl set-default multi-user.target

   * Use the GRUB menu to try to boot into recovery mode

   * Observe that you end up at a TTY, not in recovery mode

  [Regression Potential]

   * Possible regression if someone set recovery as a default kernel
  parameter, then relied on the default systemd target to override it.
  This seems like an unlikely use-case.

  [Original Description]

  Fresh Ubuntu 18.04.2 server install

  Try to boot to recovery mode from GRUB. Works correctly.

  Use systemctl to set a different default, say systemctl set-default
  multi-user.target

  Try to boot to recovery mode from GRUB. End up at getty and not the
  recovery menu.

  Delete /etc/systemd/system/default.target* and recovery mode works
  normally again.

  I believe this can be fixed by changing normaldir to earlydir in the
  generator.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/friendly-recovery/+bug/1821252/+subscriptions



More information about the foundations-bugs mailing list