[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