** Description changed:
+ [Impact]
+ MAAS installs fail on systems that have EFI Variables that include a "/" in
the name.
+
Split out of bug 1894217.
- We're seeing a situation where curtin fails when the variable
- BootCurrent references does not exist.
+ [Test Case]
+ $ ls /sys/firmware/efi/efivars | grep ^Boot
+ ls: reading directory '/sys/firmware/efi/efivars': Input/output error
+ Boot mode select-7683c190-9523-4402-81ff-a11e93dc389c
+ Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c
+ BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c
+ BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c
+ BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c
- At boot, efibootmgr -v shows:
+ The Input/output error is the key symptom.
- BootCurrent: 0003
- Timeout: 10 seconds
- BootOrder: 0003,0004,0005,0006,0001
-
- Note that there are actually no individual boot entries in this output.
- BootCurrent and BootOrder are referencing Boot entries that do not
- apepar to exist.
-
- Later, curtin tries to set a new BootOrder that places the value of
- BootCurrent at the front. This causes efibootmgr to error out,
- apparently escalating to an installation failure:
-
- UEFI efibootmgr output after install:
- {'current': '0003', 'timeout': '10 seconds', 'order': ['0000'],
'entries': {'0000': {'name
- ': 'ubuntu', 'path':
'HD(1,GPT,0937ffdf-628c-4161-8b2f-5920235669c6,0x800,0x100000)/File(\\EFI\\ub
- untu\\shimx64.efi)'}}}
- Setting currently booted 0003 as the first UEFI loader.
- New UEFI boot order: 0003,0000
- Running command ['mount', '--bind', '/dev',
'/tmp/tmp6ha4_iz2/target/dev'] with allowed re
- turn codes [0] (capture=False)
- Running command ['mount', '--bind', '/proc',
'/tmp/tmp6ha4_iz2/target/proc'] with allowed
- return codes [0] (capture=False)
- Running command ['mount', '--bind', '/run',
'/tmp/tmp6ha4_iz2/target/run'] with allowed re
- turn codes [0] (capture=False)
- Running command ['mount', '--bind', '/sys',
'/tmp/tmp6ha4_iz2/target/sys'] with allowed re
- turn codes [0] (capture=False)
- Running command ['mount', '--bind', '/sys/firmware/efi/efivars',
'/tmp/tmp6ha4_iz2/target/
- sys/firmware/efi/efivars'] with allowed return codes [0] (capture=False)
- Running command ['unshare', '--fork', '--pid', '--', 'chroot',
'/tmp/tmp6ha4_iz2/target',
- 'efibootmgr', '-o', '0003,0000'] with allowed return codes [0] (capture=False)
- Invalid BootOrder order entry value0003
- ^
- efibootmgr: entry 0003 does not exist
+ [Regression Risk]
+ There's a very tiny chance that someone has written code that depends on an
the -EIO error for some reason. It's hard to guess why such a script would do
that.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1899993
Title:
EFI: Fails when BootCurrent entry does not exist
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/curtin/+bug/1899993/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs