Systemd-boot + FDE - efi partition size - request

Hi,
I use on several PCs (Notebook, Desktop, SOHO-Server) Tumbleweed and Slowroll with FDE according this proposal:

Since about one month. This works with TOPM 2.0 pretty well. But some weeks, all devices runs out of memory for the EFI partition (between 91% and 95% du).

The problem is, that “sdbootutil update-all-entries” is not working anymore and I need manually to login.

On all the systems, the EFI partition size was only about 511MB.

This is strange on a 512GB to 2TB SSD. Isn’t it possible to increase the disk size at least in case systemd boot is selected (OK, this will happen on the end, but than it should at least be part of the description or a warning should be shown).

Thanks
Ulf

@ub22 For systemd-boot the EFI partition should be 4GB…

Yes, like at older GRUB installations (about 4 or more years ago).
But it is not included in the article :neutral_face: and I was not exactly looking at it.
How I can request this change at the developers (OK sure I can create a ticket, but there I have no good experiance, so it seams that my tickets are not well understandeable.

I’m checking in the moment how to resize and move the LUKS encrypted root partitions without data loss and increase the efi disk space. But it’s not easy to find good articles about this topic which are at least not to old.

A similar problem for me today, with my 511M efi partition out of space and ‘dup’ not able to install the latest ‘kernel-default-6.13.8-1.1’ properly.
My Tumbleweed install in April 2024 is on a 1Tb disk using the defaults with snapshots, except that I went with FDE and Systemd Boot.
Command ‘dup’ displayed this error message:
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.4-1-default-512.conf
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.6-1-default-512.conf
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.4-1-default-513.conf
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.6-1-default-513.conf
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.4-1-default-514.conf
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.6-1-default-514.conf
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.4-1-default-515.conf
Removed /boot/efi/loader/entries/opensuse-tumbleweed-6.13.6-1-default-515.conf
Error: No free space in /boot/efi for new kernel
warning: %post(kernel-default-6.13.8-1.1.x86_64) scriptlet failed, exit status 1
(201/376) Installing: kernel-default-6.13.8-1.1.x86_64 ………………………[done]
Command ‘df -h /boot/efi/’ shows:
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 511M 440M 72M 86% /boot/efi
And ‘du -sh /boot/efi/opensuse-tumbleweed/* shows:
4.0K /boot/efi/opensuse-tumbleweed/6.10.2-1-default
4.0K /boot/efi/opensuse-tumbleweed/6.10.4-1-default
4.0K /boot/efi/opensuse-tumbleweed/6.10.5-1-default
4.0K /boot/efi/opensuse-tumbleweed/6.11.0-1-default
72M /boot/efi/opensuse-tumbleweed/6.12.9-1-default
75M /boot/efi/opensuse-tumbleweed/6.13.0-1-default
73M /boot/efi/opensuse-tumbleweed/6.13.1-1-default
73M /boot/efi/opensuse-tumbleweed/6.13.3-1-default
73M /boot/efi/opensuse-tumbleweed/6.13.4-1-default
73M /boot/efi/opensuse-tumbleweed/6.13.6-1-default
4.0K /boot/efi/opensuse-tumbleweed/6.13.8-1-default
Command ‘ ls /boot/efi/loader/entries’ shows these entries:
opensuse-tumbleweed-6.12.9-1-default-211.conf*
opensuse-tumbleweed-6.13.4-1-default-211.conf*
opensuse-tumbleweed-6.13.6-1-default-516.conf*
opensuse-tumbleweed-6.13.0-1-default-211.conf*
opensuse-tumbleweed-6.13.4-1-default-516.conf*
opensuse-tumbleweed-6.13.6-1-default-517.conf*
opensuse-tumbleweed-6.13.1-1-default-211.conf*
opensuse-tumbleweed-6.13.4-1-default-517.conf*
opensuse-tumbleweed-6.13.3-1-default-211.conf*
opensuse-tumbleweed-6.13.6-1-default-211.conf*
Running ‘sdbootutil update-all-entries’ does not change anything for me either.
I have read advice that can be summarised as:

  • Download and use the live (bootable) version of GParted Live
  • Then make a copy of the efi partition, e.g. on a backup drive.
  • Make space (4GB) immediatly after the efi partition and then grow it into that.

I feel confident in doing the above steps, however, I’m worried that with an encrypted disk booting with Systemd Boot and all the entries being linked to snapshots, will I run into problems?

I have never used systemd boot but I’ve been studying how to switch to it and watching the forum posts.

I’ve found this.

A separate /boot partition of type “Linux extended boot” (XBOOTLDR) can be created to keep the kernel and initramfs separate from the ESP. This is particularly helpful to dual boot with Windows with an existing ESP that is too small.

See XBOOTLDR

Except all tools that manage bootloader settings and new kernels need to support it. That something is theoretically possible does not mean it can also be used in practice.

I created a bug report and at least the main device I was able to fix.
Please check if you are able to fix your issue with this as well:
https://bugzilla.opensuse.org/show_bug.cgi?id=1239764
If not, I would propose to create a new Bug Report

Thanks for this. I will do some clean up by using Alberto’s suggestions (adapting to my setup) to ‘Remove old snapshots’ and ‘Remove old kernels’. Hopefully then the newer version of sdbootutils will “address the case when the ESP is filled, and free space removing older boot entries.”