** 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 ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs