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

Steven Clarkson 1821252 at bugs.launchpad.net
Sat Jun 29 00:12:12 UTC 2019


Tested friendly-recovery 0.2.38ubuntu1.1 on Bionic.

Ran systemctl set-default multi-user.target
Rebooted and selected recovery mode from GRUB
Got to the recovery menu, as expected.

apt-cache policy friendly-recovery

friendly-recovery:
  Installed: 0.2.38ubuntu1.1
  Candidate: 0.2.38ubuntu1.1
  Version table:
 *** 0.2.38ubuntu1.1 100
        100 /var/lib/dpkg/status
     0.2.38ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu bionic-updates/main i386 Packages
     0.2.38 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu bionic/main i386 Packages


** Tags removed: verification-needed-bionic
** Tags added: verification-done-bionic

-- 
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 Committed
Status in friendly-recovery source package in Bionic:
  Fix Committed
Status in friendly-recovery source package in Cosmic:
  Fix Committed
Status in friendly-recovery source package in Disco:
  Fix Committed
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