[Bug 1642298] Re: UEFI Xenial install sets computer to boot from hard disk

Andres Rodriguez andreserl at ubuntu-pe.org
Wed Aug 30 19:44:44 UTC 2017


Hi Rod,

Judging by your message in #2, unless I'm missing something, you would have not been able to re-deploy the machine because efibootmgr had set the boot order to the disk first. When you re-deployed the machine, MAAS told that machine that "on the next boot, PXE boot".
"
- The node was already deployed and running when I started. It had the
  "ubuntu" entry set as the default in "efibootmgr" output, suggesting
  that when it was last deployed (about a month ago?), the bug existed.
- I redeployed, and it worked as expected.
"

As far as IPMI, you do have a way to ensure that the next boot, boots
from PXE. Example EFI boot config for freeipmi-tools:

Section Chassis_Boot_Flags
	Boot_Flags_Persistent                         Yes
	BIOS_Boot_Type                                EFI
	Boot_Device                                   PXE
EndSection


And exactly, we as Canonical can control how and when we use efibootmgr to adjust the boot order. The fact that we are, by default, completely eliminating the boot order that has been set on the BIOS by the administrator, is IMHO, the wrong approach. If the administrator has, by default, set PXE as the first in the boot order, then grub should not be overriding such configuration. There is a reason why the administrator has set the boot order to PXE first and Ubuntu shouldn't be changing that.

While I understand you guys have been discussing the solution, and
whatever the solution may be, that doesn't change the fact that both
Blake and I agree in the fact that grub shouldn't be changing the boot
order by default. The fact that it is currently doing it overriding BIOS
settings and we want to work around it, is a completely different
matter. Also, it doesn't mean that curtin shouldn;t be setting this by
default. IMHO, as I already expressed, curtin should ensure setting the
grub to not update the nvram to ensure that curtin maintains what it
does today.

Today, after installation, curtin uses efibootmgr *AND* ensures that PXE
is first on the boot order, and the disk is second as a fallback. As
such, curtin needs to ensure, by default that grub does not overwrite
the efibootmgr configuration that curtin already made.

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

Title:
  UEFI Xenial install sets computer to boot from hard disk

Status in curtin:
  Confirmed
Status in MAAS:
  Incomplete
Status in grub2 package in Ubuntu:
  Fix Released
Status in grub2 source package in Trusty:
  Triaged
Status in grub2 source package in Xenial:
  Triaged
Status in grub2 source package in Yakkety:
  Triaged

Bug description:
  [Impact]
  Typically when you install Ubuntu on an EFI system, it installs a new default EFI boot entry that makes the system reboot directly into the OS. During MAAS installs, curtin is careful to disable that behavior. MAAS requires the default boot entry to remain PXE, so that it can direct the system to boot from disk or network as necessary. curtin does this by passing --no-nvram to grub-install when installing the bootloader.

  *Update*: newer curtin releases actually allow the creation of a new
  boot entry, but updates the boot menu to make PXE the default. That
  change is orthogonal to this bug.

  ***However***, this doesn't stop a new default boot entry from being
  added after deploy. If the user installs a grub package update or
  manually runs 'grub-install', booting from disk will become the
  default, and MAAS will lose control of the system.

  [Proposed Solution (er... glorified workaround)]
  The GRUB package in zesty now has support for setting the --no-nvram flag *persistently*. This is implemented via a debconf template (grub2/update_nvram). If curtin sets this flag to "false" during install, post-deploy grub updates will also pass the --no-nvram flag when running grub-install.

  This isn't a perfect solution - users can still call grub-install
  manually and omit this flag.

  [Test Case]
   - MAAS deploy an EFI system.
   - After deploy, login and run 'sudo apt --reinstall install grub-efi-$(dpkg --print-architecture)
   - Reboot and observe that the system does not PXE boot.

  [Regression Risk]
   - The GRUB implementation does not change the defaults of the package. The user would need to opt-in to the "grub2/update_nvram=false". This option is also only presented to users who specifically request a low debconf priority (e.g. expert mode installs).
   - XXX curtin risk XXX

To manage notifications about this bug go to:
https://bugs.launchpad.net/curtin/+bug/1642298/+subscriptions



More information about the foundations-bugs mailing list