diff --git a/diskimage_builder/lib/disk-image-create b/diskimage_builder/lib/disk-image-create index 7dd039092..3d3996d71 100644 --- a/diskimage_builder/lib/disk-image-create +++ b/diskimage_builder/lib/disk-image-create @@ -446,6 +446,18 @@ if [ "$DIB_ROOT_FSTYPE" = "ext4" ] ; then fi fi +# EFI system partitions default to be quite large at 512mb for maximum +# compatability (see notes in +# 7fd52ba84180b4e749ccf4c9db8c49eafff46ea8) . We need to increase the +# total size to account for this, or we run out of space creating the +# final image. See if we have included the block-device-efi element, +# which implies we have a large EFI partition, and then pad the final +# image size. +if [[ ${IMAGE_ELEMENT} =~ "block-device-efi" ]]; then + echo "Expanding disk for EFI partition" + du_size=$(( $du_size + (525 * 1024) )) +fi + # Rounding down size so that is is a multiple of 64, works around a bug in # qemu-img that may occur when compressing raw images that aren't a multiple # of 64k. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1180021 diff --git a/releasenotes/notes/efi-bootloader-disk-size-4c1a9f18967104fb.yaml b/releasenotes/notes/efi-bootloader-disk-size-4c1a9f18967104fb.yaml new file mode 100644 index 000000000..c81243075 --- /dev/null +++ b/releasenotes/notes/efi-bootloader-disk-size-4c1a9f18967104fb.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + When using the ``block-device-efi`` element to create an EFI based + system (most notably, with ARM64), the final disk size is now + expanded for the 512MiB system EFI partition introduced with 2.24.0