Weekly status #325

Weekly status for the week of 13th November to 26th November.


This week’s post covers the last 2 weeks of changes as last week’s regular post was missed.

We are starting to see some of our roadmap items being merged for the 24.04 cycle, the first of which is the removal of 2MB UEFI firmware support, with 4MB firmware now forced for new and existing VMs. Additionally we have landed support for a debug UEFI VM firmware to aid in debugging VM start up issues.

Following on from the recent bump of the minimum Go version for LXD in the main branch to Go 1.20, the 5.0-stable branch has had its minimum Go version bumped to Go 1.19. This is to ensure we can keep up to date with security fixes for dependent packages.

LXD highlights


  • Added new VM instance option boot.debug_edk2 which allows enabling a debug UEFI EDKII firmware to aid debugging VM start up issues. The LXD snap package will include the required debug firmware build in a file called OVMF_CODE.4MB.debug.fd. The debug output will be captured and written to the file edk2.log (inside the $LXD_DIR/logs/<instance_name> directory). E.g. /var/snap/lxd/common/lxd/logs/myvm/edk2.log.


  • The 4MB UEFI firmware for VMs is now forced for new and existing VMs. The 2MB firmware variant has been removed from the snap. This is to reduce the number of different firmware variants that need to be supported in the snap. The 4MB variant is required for booting Windows 11. This change should be transparent for existing VMs.
  • Each LXD server will now generate and persist a file containing a UUID which will be used to identify the server for use with NVMe bindings. This will be used with the forthcoming new Dell Powerflex storage driver.
  • The InstanceExecArgs struct in the client package has been updated to have its Stdin, Stdout and Stderr field types better align with those used by Go’s own exec package by removing the need requirement for these fields to implement the io.Closer interface. Because this is reducing the size of the interface required, this should not affect any user who is currently passing in an interface that also implements the io.Closer interface.

Bug fixes

  • Fixed regression introduced in #12258 where BTRFS pools whose source is a subvolume outside of the pool mount path would fail to be created.
  • Fixed regression introduced in #12313 that prevented trusting certs in CA mode.
  • Fixed regression introduced in #12348. Use volume copy when moving a volume to target project.
  • Fixed bug where websocket ping frames sent by LXD were not being consumed by the lxc client command for the control and stdin channels.

All changes

The items listed below is all of the work which happened over the past week and which will be included in the next release.


LXD Charm

Distribution work

This section is used to track the work done in downstream Linux distributions to ship the latest LXD as well as work to get various software to work properly inside containers.


  • Nothing to report this week.