Subiquity crash on Lenovo X13s because UEFI variables not supported

Bug #2003222 reported by Heinrich Schuchardt
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
subiquity
Fix Released
Undecided
Unassigned
curtin (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

The following crash occurs in curtin.
The device does not provide access to UEFI variables at runtime.

The error from efibootmgr should only result in a warning and not stop the installation process.

         finish: cmd-install/stage-curthooks/builtin/cmd-curthooks/install-grub: FAIL: installing grub to target devices
         finish: cmd-install/stage-curthooks/builtin/cmd-curthooks/configuring-bootloader: FAIL: configuring target system bootloader
         finish: cmd-install/stage-curthooks/builtin/cmd-curthooks: FAIL: curtin command curthooks
         Traceback (most recent call last):
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/commands/main.py", line 202, in main
             ret = args.func(args)
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/commands/curthooks.py", line 1903, in curthooks
             builtin_curthooks(cfg, target, state)
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/commands/curthooks.py", line 1868, in builtin_curthooks
             setup_grub(cfg, target, osfamily=osfamily,
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/commands/curthooks.py", line 818, in setup_grub
             efi_orig_output = util.get_efibootmgr(target)
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/util.py", line 967, in get_efibootmgr
             stdout, _ = in_chroot.subp(['efibootmgr', '-v'], capture=True)
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/util.py", line 787, in subp
             return subp(*args, **kwargs)
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/util.py", line 275, in subp
             return _subp(*args, **kwargs)
           File "/snap/subiquity/4236/lib/python3.8/site-packages/curtin/util.py", line 139, in _subp
             raise ProcessExecutionError(stdout=out, stderr=err,
         curtin.util.ProcessExecutionError: Unexpected error while running command.
         Command: ['unshare', '--fork', '--pid', '--', 'chroot', '/target', 'efibootmgr', '-v']
         Exit code: 2
         Reason: -
         Stdout: ''
         Stderr: EFI variables are not supported on this system.

         Unexpected error while running command.
         Command: ['unshare', '--fork', '--pid', '--', 'chroot', '/target', 'efibootmgr', '-v']
         Exit code: 2
         Reason: -
         Stdout: ''
         Stderr: EFI variables are not supported on this system.

Tags: iso-testing
Revision history for this message
Heinrich Schuchardt (xypron) wrote :
affects: linux-riscv (Ubuntu) → subiquity (Ubuntu)
summary: - Subiquity crash on Lenovo X13s
+ Subiquity crash on Lenovo X13s because UEFI variables not supported
Revision history for this message
Heinrich Schuchardt (xypron) wrote :

In curtin we could check if /sys/firmware/efi/efivars exists. If it does not exist update_nvram has to be False.

I wonder why the problem did not occur on the U-Boot based riscv64 platforms. There EFI variables can be read but not set. Maybe as we start with a system without boot options we simply do not try to delete or reorder boot options.

no longer affects: subiquity (Ubuntu)
Revision history for this message
Heinrich Schuchardt (xypron) wrote (last edit ):
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in curtin (Ubuntu):
status: New → Confirmed
Revision history for this message
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
https://iso.qa.ubuntu.com/qatracker/reports/bugs/2003222

tags: added: iso-testing
Revision history for this message
Gaele Strootman (gaele) wrote :

This happened to me using Ubiquity on a Macbook Pro 11,3.

Revision history for this message
Heinrich Schuchardt (xypron) wrote :

In GRUB we have
debian/patches/efivar-check-that-efivarfs-is-writeable.patch
which ensures that if EFI variables exist but are no writable we don't throw an error in grub-install.

Commit 931e97b57b64 ("linux: handle non-ACPI systems in device_get()") in https://github.com/rhinstaller/efivar ensures that EFI variables can be accessed by efibootmgr on non-ACPI systems. Since efivar (37-6ubuntu3) this fix is available in Mantic and Noble.

Closing as fix released.

Changed in subiquity:
status: New → Fix Released
Changed in curtin (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.