[Bug 1311827] Re: UEFI installation overrides firmware PXE-boot settings

Scott Moser smoser at ubuntu.com
Mon Jun 22 16:24:12 UTC 2015


** Description changed:

+ === Begin SRU Template ===
+ [Description]
+ Installing a node configured to boot in EFI/UEFI mode results in Ubuntu registering GRUB with the firmware, thus overriding the node's original PXE-boot setting. This can be seen via efibootmgr after the node has been started by running 'efibootmgr -v'. 
+ 
+ The solution is to invoke grub-install with '--no-nvram'.  That
+ instructs grub to not update the PXE boot setting.
+ 
+ Curtin code detects if the --no-nvram flag is available and uses it if
+ it is.
+ 
+ [Impact] 
+ MAAS generally works by expecting a system to always request boot from the network.  MAAS then instructs it to boot from the local disk when it is installed, and feeds it network boot information for install or commissioning or enlistment.
+ 
+ The issue here is that we would install to the system and configure the
+ system to boot from the local disk.  The end result is that installation
+ works once, but when the system is returned to maas, a subsequent
+ installation will fail.
+ 
+ [Test Case]
+ a.) enlist a EFI/UEFI system into maas with network boot configured
+ b.) acquire and start system to install 14.04
+ c.) release system
+ d.) acquire and start system to install 14.04
+ 
+ Currently step 'd' will boot from local disk.  After fix is applied,
+ system will boot from network and perform install correctly.
+ 
+ [Regression Potential]
+ Seems fairly unlikely for regression.  I can't think of a specific case that would fail that previously succeeded.
+ 
+ [Other]
+ As grub in 12.04 does not support the --no-nvram flag, installation of 12.04 will still cause this failure path.
+ 
+ === End SRU Template ===
+ 
  Installing a node configured to boot in EFI/UEFI mode results in Ubuntu
  registering GRUB with the firmware, thus overriding the node's original
  PXE-boot setting. This can be seen via efibootmgr after the node has
  been started:
  
  $ sudo efibootmgr -v
  BootCurrent: 0006
  Timeout: 0 seconds
  BootOrder: 0006,000E,0007,0008,0009,000A,000B,000C,000D
- Boot0000  Setup	
- Boot0001  Boot Menu	
- Boot0002  Diagnostic Splash Screen	
- Boot0003  Lenovo Diagnostics	
- Boot0004  Startup Interrupt Menu	
- Boot0005  ME Configuration Menu	
+ Boot0000  Setup
+ Boot0001  Boot Menu
+ Boot0002  Diagnostic Splash Screen
+ Boot0003  Lenovo Diagnostics
+ Boot0004  Startup Interrupt Menu
+ Boot0005  ME Configuration Menu
  Boot0006* ubuntu	HD(1,800,100000,2017753f-1b99-424d-811b-91c2e8c3c816)File(\EFI\ubuntu\shimx64.efi)
  Boot0007* USB CD	030a2400d23878bc820f604d8316c068ee79d25b86701296aa5a7848b66cd49dd3ba6a55
  Boot0008* USB FDD	030a2400d23878bc820f604d8316c068ee79d25b6ff015a28830b543a8b8641009461e49
  Boot0009* ATAPI CD0	030a2500d23878bc820f604d8316c068ee79d25baea2090adfde214e8b3a5e471856a35401
  Boot000A* ATA HDD0	030a2500d23878bc820f604d8316c068ee79d25b91af625956449f41a7b91f4f892ab0f600
  Boot000B* ATA HDD1	030a2500d23878bc820f604d8316c068ee79d25b91af625956449f41a7b91f4f892ab0f601
  Boot000C* ATA HDD2	030a2500d23878bc820f604d8316c068ee79d25b91af625956449f41a7b91f4f892ab0f602
  Boot000D* USB HDD	030a2400d23878bc820f604d8316c068ee79d25b33e821aaaf33bc4789bd419f88c50803
  Boot000E* PCI LAN	030a2400d23878bc820f604d8316c068ee79d25b78a84aaf2b2afc4ea79cf5cc8f3d3803
  Boot000F* IDER BOOT CDROM	ACPI(a0341d0,0)PCI(16,2)ATAPI(0,1,0)
  Boot0010* IDER BOOT Floppy	ACPI(a0341d0,0)PCI(16,2)ATAPI(0,0,0)
  Boot0012  Rescue and Recovery
  
  Note that the system's BootOrder is set to load \EFI\ubuntu\shimx64.efi
  (which in turn launches GRUB; item Boot0006) from the hard disk, and to
  PXE-boot (item Boot000E) second. When the process began, it was set to
  PXE-boot first.
  
  This works fine for bringing up a node initially, but it's different
  from the way a BIOS-mode installation works, in which the system is left
  PXE-booting by default. The UEFI approach will result in an inability to
  delete the node and re-enlist it, or even to stop the node and then re-
  start it and have Ubuntu re-installed, without either manually running
  efibootmgr or delete the file or partition to which the boot manager
  entry points.
  
  I'm attaching my MAAS log files. The UEFI-booting system is
  192.168.0.56.
  
  Here's the MAAS server version information:
  
  $ dpkg -l '*maas*'|cat
  Desired=Unknown/Install/Remove/Purge/Hold
  | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  ||/ Name                                                  Version                                             Architecture Description
  +++-=====================================================-===================================================-============-===============================================================================
  ii  maas                                                  1.5+bzr2252-0ubuntu1                                all          MAAS server all-in-one metapackage
  ii  maas-cli                                              1.5+bzr2252-0ubuntu1                                all          MAAS command line API tool
  ii  maas-cluster-controller                               1.5+bzr2252-0ubuntu1                                all          MAAS server cluster controller
  ii  maas-common                                           1.5+bzr2252-0ubuntu1                                all          MAAS server common files
  ii  maas-dhcp                                             1.5+bzr2252-0ubuntu1                                all          MAAS DHCP server
  ii  maas-dns                                              1.5+bzr2252-0ubuntu1                                all          MAAS DNS server
  ii  maas-region-controller                                1.5+bzr2252-0ubuntu1                                all          MAAS server complete region controller
  ii  maas-region-controller-min                            1.5+bzr2252-0ubuntu1                                all          MAAS Server minimum region controller
  ii  python-django-maas                                    1.5+bzr2252-0ubuntu1                                all          MAAS server Django web framework
  ii  python-maas-client                                    1.5+bzr2252-0ubuntu1                                all          MAAS python API client
- ii  python-maas-provisioningserver                        1.5+bzr2252-0ubuntu1                                all          MAAS server provisioning libraries
+ ii  python-maas-provisioningserver                        1.5+bzr2252-0ubuntu1                                all          MAAS server

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to curtin in Ubuntu.
https://bugs.launchpad.net/bugs/1311827

Title:
  UEFI installation overrides firmware PXE-boot settings

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



More information about the Ubuntu-server-bugs mailing list