Lack of proper handling of new firmware architectures
| Affects | Status | Importance | Assigned to | Milestone | ||
|---|---|---|---|---|---|---|
| OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Takashi Kajinami | |||
| Ubuntu Cloud Archive | Status tracked in Flamingo | |||||
| Caracal |
New
|
Undecided
|
Unassigned | |||
| Dalmatian |
New
|
Undecided
|
Unassigned | |||
| Epoxy |
New
|
Undecided
|
Unassigned | |||
| Flamingo |
New
|
Undecided
|
Unassigned | |||
| Gazpacho |
New
|
Undecided
|
Unassigned | |||
| nova (Ubuntu) | Status tracked in Resolute | |||||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Questing |
In Progress
|
Undecided
|
Marcin Wilk | |||
| Resolute |
In Progress
|
Undecided
|
Marcin Wilk | |||
Bug Description
[ Impact ]
Users reported that when trying to launch a VM from the UEFI-enabled image on Ubuntu 24.04 (Noble) with ovmf package versions 2024.02-2ubuntu0.5 and later, the VM fails to launch because nova doesn't know some of the libvirt-provided firmware features. As a result, they can't run UEFI-booted VMs.
This problem has already been resolved in the upstream code [1]. I have verified that the upstream patch fixes the problem with launching a UEFI-enabled VM on Resolute and Questing.
[1] https:/
[ Test Plan ]
1. Deploy the regress-stack on a Resolute VM
(make sure the VM has enough resources to run regress-stack):
sudo apt update && sudo apt upgrade -y
sudo apt install -y dpkg-dev python3-dev python-apt-dev
sudo snap install astral-uv --classic
git clone https:/
cd regress-stack
# Python and dependency version pinning
uv python pin 3.13
sed -i 's/requires-python = ".*"/requires-
sed -i 's/^ "python-apt"/# "python-apt"/' pyproject.toml
sed -i 's/^python-apt =/#python-apt = /' pyproject.toml
# Nova and Neutron service name fixes
sed -i 's/ core_utils.
sed -i '/ core_utils.
sed -i '/ core_utils.
sed -i 's/ core_utils.
uvx pre-commit install
uv venv --system-
uv sync
uv run py.test
sudo apt install -y crudini ceph-mgr ceph-mon ceph-osd ceph-volume mysql-server keystone apache2 libapache2-
sudo uv run regress-stack setup
sudo cp /root/auth.rc ~
sudo chown $(id -u):$(id -g) ~/auth.rc
source ~/auth.rc
# verify OpenStack is up and running:
openstack endpoint list
openstack service list
openstack hypervisor list
2. Create required resources in OpenStack
wget https:/
openstack flavor create --ram 2048 --vcpus 1 --disk 20 m1.small
openstack keypair create testkey
openstack network create private
openstack subnet create --network private --ip-version 4 --subnet-range 192.168.21.0/24 --allocation-pool start=192.
openstack image create --container-format bare --disk-format qcow2 --public --file ubuntu-
openstack image set --property hw_machine_type=q35 --property hw_firmware_
3. Try to create a UEFI-enabled VM:
openstack server create --image noble_uefi --flavor m1.small --key-name testkey --network private noble1
Without the patch, the VM will end up in the ERROR state, /var/log/
2026-02-12 16:11:34.693 47928 INFO nova.virt.
2026-02-12 16:11:34.694 47928 ERROR nova.compute.
With the patch applied, the VM will be successfully created
[ Where problems could occur ]
The patch modifies the code related/isolated to the UEFI-enabled VMs on KVM/libvirt hypervisors. The code change is small. If it causes a regression, most likely, a UEFI-enabled VM would not launch (but they don't launch already due to this bug). The /var/log/
[ Other Info ]
The original bug description:
Description
===========
Recent CentOS and Fedora introduced a few new architecture patterns of OVMF firmware.
However current nova does not handle these patterns appropriately and assumes that every firmware is always "statefull" and also "plash" type.
1) mode=stateless
example. 60-edk2-
---
{
"description": "OVMF with SEV-ES support",
"interface-
"uefi"
],
"mapping": {
"device": "flash",
"mode": "stateless",
}
},
"targets": [
{
]
}
],
"features": [
"amd-sev",
],
"tags": [
]
}
---
2) device=memory
example. 60-edk2-
---
{
"description": "OVMF with SEV-ES support",
"interface-
"uefi"
],
"mapping": {
"device": "memory",
"filename": "/usr/share/
},
"targets": [
{
]
}
],
"features": [
"amd-sev",
],
"tags": [
]
}
---
These files should be excluded when detecting the loader files, to avoid KeyError or launch time error.
| description: | updated |
| description: | updated |
| description: | updated |
| Changed in nova: | |
| assignee: | nobody → Takashi Kajinami (kajinamit) |
| description: | updated |
| no longer affects: | nova (Ubuntu Noble) |
| no longer affects: | nova (Ubuntu Questing) |
| no longer affects: | nova (Ubuntu Resolute) |
| no longer affects: | cloud-archive/dalmatian |
| no longer affects: | cloud-archive/epoxy |
| no longer affects: | cloud-archive/flamingo |
| Changed in nova (Ubuntu Resolute): | |
| assignee: | nobody → Marcin Wilk (wilkmarcin) |
| status: | New → In Progress |
| Changed in nova (Ubuntu Questing): | |
| status: | New → In Progress |
| Changed in nova (Ubuntu Questing): | |
| assignee: | nobody → Marcin Wilk (wilkmarcin) |

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