ERROR: No free space in /boot/efi for new kernel

Have run into a problem when trying to zypper dup with a kernel upgrade.
I am using Tumbleweed with EXT4 file system. Not sure what other info would be needed.
Advice on how to solve this problem would be welcome.

I have two other machines running tumbleweed and have not run into this problem.

I have bolded the errors and warnings below.
After the 1st time it gives an error it gives a warning that the scriplet failed and then it seems to install the kernel. Further down towards the end [before selinux] it repeats the error [not enough space to install the kernel]

I have read posts by other users but they were using BRTFS, so not sure if problem/correction is the same.
I have not rebooted because one person had this problem and it ruined the install.
This link seemed to have some info on the error:
[SUSE Customer Portal](https://Suse support)
don’t know if these commands are pertinent for information[taken from:
[No free space in /boot/efi for new kernel error during update - #10 by malcolmlewis](https://forums opensuse)

dax@Dax:~> grep '^LOADER_TYPE' /etc/sysconfig/bootloader
LOADER_TYPE="grub2-bls"
dax@Dax:~> bootctl
System:
      Firmware: n/a (n/a)
 Firmware Arch: x64
   Secure Boot: disabled
  TPM2 Support: no
  Measured UKI: no
  Boot into FW: supported

Current Boot Loader:
      Product: GRUB2 2.12
     Features: âś— Boot counting
               âś— Menu timeout control
               âś— One-shot menu timeout control
               âś— Default entry control
               âś— One-shot entry control
               âś— Support for XBOOTLDR partition
               âś— Support for passing random seed to OS
               âś— Load drop-in drivers
               âś— Support Type #1 sort-key field
               âś— Support @saved pseudo-entry
               âś— Support Type #1 devicetree field
               âś— Enroll SecureBoot keys
               âś— Retain SHIM protocols
               âś— Menu can be disabled
               âś— Multi-Profile UKIs are supported
               âś“ Boot loader set partition information
    Partition: /dev/disk/by-partuuid/ec8dacee-00b4-45a6-bcb7-8c396b5104fa
Current Entry: snapper-opensuse-tumbleweed-6.17.9-1-default.conf
Default Entry: snapper-opensuse-tumbleweed-6.17.9-1-default.conf

Random Seed:
 System Token: not set
       Exists: no
dax@Dax:~> sudo ls -lR /boot/efi
[sudo] password for root: 
/boot/efi:
total 6
drwx------. 4 root root 2048 Dec  2 08:47 EFI
drwx------. 3 root root 2048 Dec  2 08:47 loader
drwx------. 7 root root 2048 Dec 22 17:10 opensuse-tumbleweed

/boot/efi/EFI:
total 4
drwx------. 2 root root 2048 Dec  2 08:47 BOOT
drwx------. 2 root root 2048 Dec 17 21:10 opensuse

/boot/efi/EFI/BOOT:
total 1868
-rwxr-xr-x. 1 root root 965528 Jul  4  2024 BOOTX64.EFI
-rwxr-xr-x. 1 root root  90496 Jul  4  2024 fallback.efi
-rwxr-xr-x. 1 root root 852312 Jul  4  2024 MokManager.efi

/boot/efi/EFI/opensuse:
total 3018
-rwxr-xr-x. 1 root root      64 Dec  2 08:47 boot.csv
-rwxr-xr-x. 1 root root 1263472 Nov 20 03:10 grub.efi
-rwxr-xr-x. 1 root root    1024 Dec 17 21:10 grubenv
-rwxr-xr-x. 1 root root      20 Dec  2 08:47 installed_by_sdbootutil
-rwxr-xr-x. 1 root root  852312 Jul  4  2024 MokManager.efi
-rwxr-xr-x. 1 root root  965528 Jul  4  2024 shim.efi

/boot/efi/loader:
total 6
drwx------. 2 root root 2048 Dec  2 08:47 entries
-rwxr-xr-x. 1 root root   10 Dec  2 08:47 loader.conf
-rwxr-xr-x. 1 root root   32 Dec  2 08:47 random-seed

/boot/efi/loader/entries:
total 2
-rwxr-xr-x. 1 root root 456 Dec  2 08:47 snapper-opensuse-tumbleweed-6.17.9-1-default.conf

/boot/efi/opensuse-tumbleweed:
total 10
drwx------. 2 root root 2048 Dec  2 08:47 6.17.9-1-default
drwx------. 2 root root 2048 Dec  6 11:41 6.18.0-1-default
drwx------. 2 root root 2048 Dec 11 14:02 6.18.0-2-default
drwx------. 2 root root 2048 Dec 17 21:04 6.18.1-1-default
drwx------. 2 root root 2048 Dec 22 17:10 6.18.2-1-default

/boot/efi/opensuse-tumbleweed/6.17.9-1-default:
total 51194
-rwxr-xr-x. 1 root root 36196557 Dec  2 08:47 initrd-c017b028c25c866bce055a73bbf41c1f08b13892
-rwxr-xr-x. 1 root root 16222576 Nov 24 04:58 linux-10a0fca8649d15fc5f8c57735626635aae984d22

/boot/efi/opensuse-tumbleweed/6.18.0-1-default:
total 0

/boot/efi/opensuse-tumbleweed/6.18.0-2-default:
total 0

/boot/efi/opensuse-tumbleweed/6.18.1-1-default:
total 0

/boot/efi/opensuse-tumbleweed/6.18.2-1-default:
total 0
dax@Dax:~> 



Checking for file conflicts: ................................................................................................[done]
( 1/58) Installing: ImageMagick-config-7-SUSE-7.1.2.10-2.1.noarch ...........................................................[done]
( 2/58) Installing: MozillaFirefox-146.0.1-1.1.x86_64 .......................................................................[done]
( 3/58) Installing: alsa-ucm-conf-1.2.15-2.1.noarch .........................................................................[done]
( 4/58) Installing: busybox-static-1.37.0-8.1.x86_64 ........................................................................[done]
( 5/58) Installing: dracut-059+suse.785.g17d177bb-1.1.x86_64 ................................................................[done]
( 6/58) Installing: kpartx-0.13.0+229+suse.dbac936f-1.1.x86_64 ..............................................................[done]
( 7/58) Installing: libcpupower1-6.18.2-13.20.x86_64 ........................................................................[done]
( 8/58) Installing: libfuse3-4-3.18.0-1.1.x86_64 ............................................................................[done]
( 9/58) Installing: libopenmpt0-0.8.4-1.1.x86_64 ............................................................................[done]
(10/58) Installing: libopenmpt0-32bit-0.8.4-1.1.x86_64 ......................................................................[done]
(11/58) Installing: libopus0-1.6-1.1.x86_64 .................................................................................[done]
(12/58) Installing: libopus0-32bit-1.6-1.1.x86_64 ...........................................................................[done]
(13/58) Installing: libruby3_4-3_4-3.4.8-1.1.x86_64 .........................................................................[done]
(14/58) Installing: ruby3.4-3.4.8-1.1.x86_64 ................................................................................[done]
(15/58) Installing: man-2.13.1-2.1.x86_64 ...................................................................................[done]
(16/58) Installing: openSUSE-release-ftp-20251220-3859.1.x86_64 .............................................................[done]
(17/58) Installing: rsync-3.4.1-4.1.x86_64 ..................................................................................[done]
(18/58) Installing: sdbootutil-dracut-measure-pcr-1+git20251218.1cd7294-1.1.noarch ..........................................[done]
(19/58) Installing: selinux-policy-20251219-1.1.noarch ......................................................................[done]
(20/58) Installing: selinux-policy-targeted-20251219-1.1.noarch .............................................................[done]
**/usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/flatpak.conf -**
(21/58) Installing: system-user-flatpak-1.16.2-1.1.noarch ...................................................................[done]
(22/58) Installing: libMagickCore-7_Q16HDRI10-7.1.2.10-2.1.x86_64 ...........................................................[done]
(23/58) Installing: libMagickWand-7_Q16HDRI10-7.1.2.10-2.1.x86_64 ...........................................................[done]
(24/58) Installing: ImageMagick-7.1.2.10-2.1.x86_64 .........................................................................[done]
(25/58) Installing: kernel-firmware-sound-20251217-1.1.noarch ...............................................................[done]
(26/58) Installing: kernel-firmware-realtek-20251217-1.1.noarch .............................................................[done]
(27/58) Installing: kernel-firmware-qcom-20251217-1.1.noarch ................................................................[done]
(28/58) Installing: kernel-firmware-platform-20251004-3.1.noarch ............................................................[done]
(29/58) Installing: kernel-firmware-iwlwifi-20251217-1.1.noarch .............................................................[done]
(30/58) Installing: kernel-firmware-intel-20251129-2.1.noarch ...............................................................[done]
(31/58) Installing: kernel-firmware-i915-20251217-1.1.noarch ................................................................[done]
(32/58) Installing: libmpath0-0.13.0+229+suse.dbac936f-1.1.x86_64 ...........................................................[done]
(33/58) Installing: multipath-tools-0.13.0+229+suse.dbac936f-1.1.x86_64 .....................................................[done]
(34/58) Installing: cpupower-6.18.2-13.20.x86_64 ............................................................................[done]
**/usr/bin/fusermount3: setting to root:trusted 4755 (wrong permissions 4750)**
(35/58) Installing: fuse3-3.18.0-1.1.x86_64 .................................................................................[done]
(36/58) Installing: libQt6WebEngineCore6-6.10.1-2.1.x86_64 ..................................................................[done]
(37/58) Installing: libQt6WebEngineWidgets6-6.10.1-2.1.x86_64 ...............................................................[done]
(38/58) Installing: qt6-webengine-6.10.1-2.1.x86_64 .........................................................................[done]
(39/58) Installing: openSUSE-release-20251220-3859.1.x86_64 .................................................................[done]
(40/58) Installing: sdbootutil-1+git20251218.1cd7294-1.1.x86_64 .............................................................[done]
(41/58) Installing: libflatpak0-1.16.2-1.1.x86_64 ...........................................................................[done]
(42/58) Installing: flatpak-1.16.2-1.1.x86_64 ...............................................................................[done]
(43/58) Installing: flatpak-selinux-1.16.2-1.1.noarch .......................................................................[done]
(44/58) Installing: cpupower-bash-completion-6.18.2-13.20.noarch ............................................................[done]
(45/58) Installing: gvfs-1.58.0-1.4.x86_64 ..................................................................................[done]
(46/58) Installing: gvfs-backends-1.58.0-1.4.x86_64 .........................................................................[done]
(47/58) Installing: libQt6WebEngineQuick6-6.10.1-2.1.x86_64 .................................................................[done]
(48/58) Installing: qt6-webengine-imports-6.10.1-2.1.x86_64 .................................................................[done]
**/usr/bin/sdbootutil: line 669: snapper: command not found**
**ERROR: No free space in /boot/efi for new kernel**
**/usr/bin/sdbootutil: line 669: snapper: command not found**
**ERROR: No free space in /boot/efi for new kernel**
**warning: %post(kernel-default-6.18.2-1.1.x86_64) scriptlet failed, exit status 1**
(49/58) Installing: kernel-default-6.18.2-1.1.x86_64 ........................................................................[done]
(50/58) Installing: flatpak-remote-flathub-1.16.2-1.1.noarch ................................................................[done]
(51/58) Installing: gvfs-fuse-1.58.0-1.4.x86_64 .............................................................................[done]
(52/58) Installing: typelib-1_0-Fwupd-2_0-2.0.19-1.1.x86_64 .................................................................[done]
(53/58) Installing: libfwupd3-2.0.19-1.1.x86_64 .............................................................................[done]
(54/58) Installing: fwupd-2.0.19-1.1.x86_64 .................................................................................[done]
(55/58) Installing: gvfs-backend-samba-1.58.0-1.4.x86_64 ....................................................................[done]
(56/58) Installing: gvfs-backend-gphoto-1.58.0-1.4.x86_64 ...................................................................[done]
(57/58) Installing: gvfs-backend-afc-1.58.0-1.4.x86_64 ......................................................................[done]
(58/58) Installing: fwupd-bash-completion-2.0.19-1.1.noarch .................................................................[done]
**%posttrans(dracut-059+suse.785.g17d177bb-1.1.x86_64) script output:**
**/usr/bin/sdbootutil: line 669: snapper: command not found**
**ERROR: No free space in /boot/efi for new kernel**
**warning: %posttrans(dracut-059+suse.785.g17d177bb-1.1.x86_64) scriptlet failed, exit status 1**
**Error from %posttrans(dracut-059+suse.785.g17d177bb-1.1.x86_64)**
%posttrans(selinux-policy-targeted-20251219-1.1.noarch) script output:
++ SELINUX=enforcing
++ SELINUXTYPE=targeted
++ SELINUX=enforcing
++ SELINUXTYPE=targeted
skipping the directory /sys
skipping the directory /proc
skipping the directory /mnt
skipping the directory /var/tmp
skipping the directory /home
skipping the directory /root
skipping the directory /tmp
%posttrans(flatpak-selinux-1.16.2-1.1.noarch) script output:
++ SELINUX=enforcing
++ SELINUXTYPE=targeted
%transfiletriggerin(sdbootutil-1+git20251218.1cd7294-1.1.x86_64) script output:
2.12-202511200310 == 2.12-202511200310
Running post-transaction scripts ............................................................................................[done]
There are running programs which still use files and libraries deleted or updated by recent upgrades. They should be restarted to benefit from the latest updates. Run 'zypper ps -s' to list these programs.
 
Since the last system boot core libraries or services have been updated.
Reboot is suggested to ensure that your system benefits from these updates.
Dax:/home/dax #

Most likely, you have a ESP of < 512MB If that is the case there’s not much we can do.
Show lsblk -f

1 Like

Thanks for replying knurpht.
Pardon my ignorance - what is ESP? Is it the boot/efi partition size?

dax@Dax:~> lsblk -f
NAME        FSTYPE FSVER LABEL   UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1                                                                              
└─nvme1n1p1 ext4   1.0   home    c37cfb7e-6408-4641-8bc0-a0a66c4101ac  113.4G    70% /home
nvme0n1                                                                              
├─nvme0n1p1 vfat   FAT16 bootefi 95A4-A1BC                                44M    55% /boot/efi
├─nvme0n1p2 swap   1     swap    9cfeddf9-5afe-4f39-9f43-fec68457de7d                [SWAP]
└─nvme0n1p3 ext4   1.0   root    b55282b4-613b-4dd8-a4fe-3efa12f44a4f  204.7G     4% /
dax@Dax:~> 

When you say

there is not much you can do

are you saying my PC is toast or just the OS?

Correct. And for grub-bls you need 2-4 GB. Not an openSUSE issue. Totally self-inflicted. Sorry to say so.
Why have this kind of weird partioning?

Why have this kind of weird partioning?

It was the partitioning that I have been using since I started using openSuse. It is the same partitioning that I have on my 2 other PC’s that are running under openSuse Tumbleweed for the last 5 or so years. Why should this PC behave any differently?

In any case, it is behaving differently.
Tumbleweed has only been installed on this machine for about 1 month, so reinstalling would not be horrible. I always keep home and other data storage on separate drives, so really just a matter of installing OS on its own drive.

Totally self-inflicted. Sorry to say so.

Don’t be sorry. I appreciate the honesty.
So, my boot/efi partition needs to be 2 - 4 GB.
Are there any other recommendations to improve the partitioning? The SSD is 232.28 GB with efi/boot, swap and root on it. The other SSD is split equally for home and other data storage.
OR
Is there a link that would tell me how to properly partition the SSD?
AND
While I am asking for advice - EXT4 or Btrfs?

lsblk -f from my laptop

knurpht@Lenovo-P16:~> lsblk -f

NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS

sda

└─sda1 xfs 5ba14c4d-320d-43b4-b50a-cdbecd969fc6

nvme0n1

├─nvme0n1p1 vfat FAT32 3419-10D6 504,6M 1% /boot/efi

├─nvme0n1p2 btrfs 980a6220-cd3f-4564-aec8-2ef3f375f5e3 439,3G 53% /root

│ /home

│ /var

│ /usr/local

│ /opt

│ /boot/grub2/x86_64-efi

│ /boot/grub2/i386-pc

│ /srv

│ /.snapshots

│ /

So EFI and full btrfs

Because recent TW installs have changed default bootloader from Grub EFI to BLS. When installing to use an already existing ESP that is a formerly recommended size, a new installation needs a change from the default BLS back to traditional EFI Grub before proceeding with the installation. This results in kernels remaining on a native Linux filesystem like your other two installations instead of being hosted on a VFAT ESP where few can fit.

1 Like

@LaQuirrELL Hi If you want to future proof your setup, then yes you do really need 2-4G for /boot/efi (AKA ESP)

I use ext4 here, but have all my data on a separate data partition (which is RAID1), I also use an additional drive for building (sdc1) ;

 lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda           8:0    0 476.9G  0 disk  
├─md126       9:126  0 453.1G  0 raid1 /data
└─md127       9:127  0     0B  0 md    
sdb           8:16   0 476.9G  0 disk  
├─md126       9:126  0 453.1G  0 raid1 /data
└─md127       9:127  0     0B  0 md    
sdc           8:32   0 111.8G  0 disk  
└─sdc1        8:33   0 111.8G  0 part  /build
sr0          11:0    1  1024M  0 rom   
zram0       254:0    0   1.6G  0 disk  [SWAP]
nvme0n1     259:0    0 953.9G  0 disk  
├─nvme0n1p1 259:1    0     4G  0 part  /boot/efi
└─nvme0n1p2 259:2    0 949.9G  0 part  /

Whilst there are recommendations to just switch to grub-efi, this could just be delaying the inevitable when grub-efi won’t be supported… I guess one could say “Switch now and forever be in peace…”

And yes my setup above is using grub-efi as I rebuilt this system in November last year, knowing a change would come sooner, rather than later.

Oh, and consider switching to zram for swap if want to recover some space for /boot/efi

@MrMazda Thank you for explaining that. Much appreciated.

@knurpht It occurs to me that you may have thought I was dissing openSuse/Tumbleweed. I was not. I think it is a great OS, I would recommend it to anyone over Debian and other distros, etc.

@malcolmlewis Thank you Whenever I read up on Ext4 vs Btrfs I always seem to choose Ext4 because opinions say it is a stable and reliable filesystem and transfers files quicker than Btrfs. While Btrfs offers advanced features like snapshots and data integrity checks, it can be more complex to manage.
For my very simple systems what would you recommend? Is Btrfs going to be inevitable sooner rather than later also?
For years I have always separated my home and other data storage on other drives. That has been a saving grace factor a few times.

consider switching to zram for swap
zram0 254:0 0 1.6G 0 disk [SWAP]

I see the zram in your setup, but on what drive is it located and how do I set it up?

@LaQuirrELL I’m fine running this setup with ext4, I do run btrfs everywhere else on Tumbleweed, Leap and MicroOS, just because I’m happy with that as well.

The zram uses system RAM, I have 128GB of ram in this desktop, so only have a small zram file for an unexpected oom issue (which I’ve not had).

The configuration on other systems I set to 1/4 of system RAM, but again that’s something for you to configure.

I install zram-generator and then use the following configuration;

Filename and location: /etc/systemd/zram-generator.conf

Contents;

[zram0]
zram-size = ram * 0.25
compression-algorithm = zstd
max-comp-streams = 12
swap-priority = 100
fs-type = swap

I allow 12 cores to be used (one third of cpu cores) for max-comp-streams so adjust as required here too.

To start and enable run systemctl enable --now systemd-zram-setup@zram0.service and ignore the warning that is generated when enabling.

1 Like

Not at all.

We had this in another thread here recently.

The problem is that the new default bootloader for new Tumbleweed / Slowroll installation is now grub-bls which wants to store all kernels and all initrds on the EFI System Partition (/boot/efi). That of course means that this ESP needs to be large enough to hold all those files.

I consider that a totally hare-brained idea, and I have no idea why this irresponsible decision was made; it’s an accident waiting to happen for all users who have been using the older grub2-efi for many years, when each Linux distro would consume just something around 5 MiB on the ESP.

grub2-efi is still there; it’s just not the default anymore. Install the package, change the bootloader configuration to use it, reinstall the bootloader.

IIRC there are instructions for this in that other thread.

Edit: The other thread: Install Dual Boot with Existing small EFI Partition

5 Likes

I have been using ext4 for many decades. It works just fine, and as you wrote, it’s much less complex to administer; it’s very low-maintenance. And it won’t go away anytime soon.

On the downside, there are no snapshots and no rollback. Okay; I can handle that.

3 Likes

@shundhammer I respectfully disagree, this change from memory was started at least a year or more ago…

Many things are discussed on the Factory mailing list, there is also some expectation that Tumbleweed users follow this to see what developments are in the future. Like I indicated to the OP, I did this Tumbleweed install in November last year and am using grub-efi, but prepared for a change by setting the partition to 4GB…

To be honest some of these issues are self inflicted, if users are not keeping up to speed on what future changes are being implemented.

Oh, and I guess y’all are in for an Xmas surprise with packman…

Can you elaborate further?

It was posted on the packman mailing list recently that extended downtime is coming up soon.

2 Likes

Changing to new hypervisor.
https://lists.links2linux.de/pipermail/packman/2025-December/018239.html

2 Likes

@deano_ferrari Case in point… :wink: But @mrmazda and @Sauerland eluded to a potential issue, that if product consumers are not following development, which Tumbleweed is, then get all flustered when new developments appear in a product…

Sorry, no. It’s too easy to dismiss this kind of problem like that.

I’ve been working for SUSE since 10/1999 (with a 6 years pause 2009-2015), and I can tell you that it’s completely impossible to follow all those discussions that are constantly going on, even if it’s your full time job. If you want to follow even just the most important internal mailing lists like [research], you can easily spend several hours each day just reading the mails there. If you engage in the discussion, that will kill about the same amount, not leaving very much productive development time. You won’t get anything done.

At some point I learned to simply ignore those lists; it’s just too much constant noise for little benefit.

And it’s similar with the openSUSE mailing lists. Nobody with a day job can be realistically expected to keep on top of all the things that are going on.

We had too many disruptive changes lately; they just keep adding up to a pile of unsurmountable problems. Imagine you are an average user with moderate interest, but limited time. And then you find YaST going away, SELinux being introduced, the sudo behavior changing, the bootloader changing from grub2-efi to grub-bls, which necessitates a much larger EFI system partition (which I bet 95% of all users will only learn when it’s too late).

That’s just too much. One of those changes at a time is manageable, but not piling them up like this. And no, it’s not “just” in Tumbleweed and Slowroll, it’s Leap 16.0 as well.

Right now I have two acquaintances asking me for a Linux installation to replace their Windows 10 that can’t run Windows 11, and I seriously don’t know what I can do for them in good conscience. Leap 16.0? Slowroll? I know very well that I’d have to go there at least once a week because something will be broken. It’s that bad. This is a sorry state of affairs.

7 Likes

Ah, okay. I thought they might be about to terminate the service. But with some downtime for maintenance I think we can live.