Comment 0 for bug 1899993

Revision history for this message
dann frazier (dannf) wrote : Fails when BootCurrent entry does not exist

Split out of bug 1894217.

We're seeing a situation where curtin fails when the variable BootCurrent references does not exist.

At boot, efibootmgr -v shows:

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