efi boot won't work on ubuntu noble

Bug #2081305 reported by Riccardo Pittau
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bifrost
Triaged
High
Unassigned
Ironic
Fix Released
High
Riccardo Pittau

Bug Description

ironic currently relies on the linuxefi/initrdefi binaries to boot efi entries from grub
those binaries are usually included in the grub2 distribution package
starting from ubuntu mantic, and currently on ubuntu noble, the linuxefi and initrdefi modules have been removed from the grub2 package in favor of using the new linux and initrd loaders

from grub2 package changelog
* New upstream version, 2.12~rc1
* build-efi-images: Drop linuxefi, using new loaders now

unfortunately this means that grub boot entry relying on linuxefi binary does not work anymore on ubuntu noble

this was first observed in Dmitry Tantsur bifrost patch to support ubuntu noble in CI https://review.opendev.org/c/openstack/bifrost/+/928895

looking at the test console logs we can see:
error: can't find command `linuxefi'.
error: can't find command `initrdefi'.

A possible solution for this could be using a fallback mechanism in GRUB.
A similar option is indeed described in the GRUB documentation: https://www.gnu.org/software/grub/manual/grub/html_node/fallback.html

Changed in ironic:
importance: Undecided → High
Afonne-CID (cidelight)
Changed in ironic:
status: New → Triaged
description: updated
Revision history for this message
Julia Kreger (juliaashleykreger) wrote :

It might be worthwhile just changing the default in the template and not trying to do some sort of fallback configuration dance.

In part because the existing parameters are x86_64 UEFI specific (I think we have a bug about arm64 EFI someplace).

If we can compare with Centos and ensure it boots with whatever streamlined change, I think we'll be good. The major aspect to keep in mind is Grub is likely going to be phased out in the future of the major distributions.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/ironic/+/933631

Changed in ironic:
status: Triaged → In Progress
Afonne-CID (cidelight)
Changed in ironic:
assignee: nobody → Riccardo Pittau (rpittau)
Changed in bifrost:
importance: Undecided → High
Afonne-CID (cidelight)
Changed in bifrost:
status: New → Triaged
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.opendev.org/c/openstack/ironic/+/933631
Committed: https://opendev.org/openstack/ironic/commit/27bd04925748a66866011a68eb0e26f23cedbcfa
Submitter: "Zuul (22348)"
Branch: master

commit 27bd04925748a66866011a68eb0e26f23cedbcfa
Author: Riccardo Pittau <email address hidden>
Date: Tue Oct 29 09:05:05 2024 +0100

    Use linux instead of linuxefi in grub config

    The EFI handover protocol has been deprecated since a while
    and recently moved to be optional and enabled by default [1].
    As a consequence, the linuxefi and initrdefi binaries that
    were specifically compiled to use that option, are
    also deprecated and they have been removed in most of
    the recent linux distributions in favor of the generic
    linux and initrd that are now compatible with UEFI boot.
    This patch changes linuxefi to linux and initrdefi to
    initrd in all the grub templates, using the generic
    entries for all the platform architectures.

    [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc3fdda2876e58a7e83e558ab51853cf106afb6a

    Closes-Bug: #2081305
    Change-Id: Ie5b2265d7afc8b71fabfca6ca6687e0e34ce3b5b

Changed in ironic:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ironic 27.0.0

This issue was fixed in the openstack/ironic 27.0.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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