[Bug 2090874] [NEW] find_efi_loader is missing bindings for aarch64 artifacts

Alan Baghumian 2090874 at bugs.launchpad.net
Mon Dec 2 21:52:14 UTC 2024


Public bug reported:

Curtin currently utilizes the find_efi_loader function in the
install_grub.py module to determine the correct utility to be used
during the GRUB installation stage.

The current version only covers artifacts for x86_64 architecture, hence
causing deployment failures (due to GRUB installation errors) on
aarch64:

def find_efi_loader(target, bootid):
    efi_path = '/boot/efi/EFI'
    possible_loaders = [
        os.path.join(efi_path, bootid, 'shimx64.efi'),
        os.path.join(efi_path, 'BOOT', 'BOOTX64.EFI'),
        os.path.join(efi_path, bootid, 'grubx64.efi'),
    ]
    for loader in possible_loaders:
        tloader = target_path(target, path=loader)
        if os.path.exists(tloader):
            LOG.debug('find_efi_loader: found %s', loader)
            return loader
    return None

I'll be submitting a PR to fix this issue.

** Affects: curtin
     Importance: Medium
     Assignee: Alan Baghumian (alanbach)
         Status: In Progress

** Changed in: curtin
       Status: New => In Progress

** Changed in: curtin
   Importance: Undecided => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to curtin.
https://bugs.launchpad.net/bugs/2090874

Title:
  find_efi_loader is missing bindings for aarch64 artifacts

Status in curtin:
  In Progress

Bug description:
  Curtin currently utilizes the find_efi_loader function in the
  install_grub.py module to determine the correct utility to be used
  during the GRUB installation stage.

  The current version only covers artifacts for x86_64 architecture,
  hence causing deployment failures (due to GRUB installation errors) on
  aarch64:

  def find_efi_loader(target, bootid):
      efi_path = '/boot/efi/EFI'
      possible_loaders = [
          os.path.join(efi_path, bootid, 'shimx64.efi'),
          os.path.join(efi_path, 'BOOT', 'BOOTX64.EFI'),
          os.path.join(efi_path, bootid, 'grubx64.efi'),
      ]
      for loader in possible_loaders:
          tloader = target_path(target, path=loader)
          if os.path.exists(tloader):
              LOG.debug('find_efi_loader: found %s', loader)
              return loader
      return None

  I'll be submitting a PR to fix this issue.

To manage notifications about this bug go to:
https://bugs.launchpad.net/curtin/+bug/2090874/+subscriptions




More information about the foundations-bugs mailing list