New openSUSE user here, still learning my way around Tumbleweed.
After a recent upgrade I got a notification that my EFI partition is running out of space. I am using the default partitioning scheme from the openSUSE installer (btrfs with FDE). The EFI partition is around 600 MB and it had filled up to about 540 MB.
I tried running sudo zypper purge-kernels, but it reported
sudo zypper purge-kernels
[sudo] password for root:
Reading installed packages…
So my understanding is that I should have at most three kernels installed (or even two if the running kernel is one of the latest two).
However, in /boot/efi/opensuse-tumbleweed I can see four kernel directories
ls
6.18.3-1-default 6.18.5-1-default 6.18.6-1-default 6.18.7-1-default
I found a discussion in bugzilla mentioning that kernels will not be deleted if they are referenced by old snapshots, since that would make those snapshots unbootable. Based on that, I deleted older snapshots and rebooted. After doing this, EFI usage dropped to around 380 MB, so it looks like some obsolete files were removed.
What still confuses me is that even after deleting all old snapshots, /boot/efi/opensuse-tumbleweed still shows the same four kernel directories. I am fairly sure these kernels are no longer referenced by any snapshots, as I only have snapshots for today’s upgrade.
Is this situation normal or expected? Should these older kernel entries in the EFI partition eventually be cleaned up automatically, or is some manual cleanup required? I am a bit lost at this point, so any help or clarification would be appreciated.
Any help or guidance on what to do next is much appreciated.
Show bootctl status. I assume from your reference to boot/efi/opensuse-tumbleweed, that you’re using “systemd-boot” bootloader?
The zypper purge-kernels command manages RPMs only, (not files copied to the EFI system). The sdbootutil command is probably your friend here (assuming “systemd-boot” or “grub2-bls” is in use).
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/7803c0f3-77d0-436a-871c-56cb28df2c54
Current Entry: system-opensuse-tumbleweed-6.18.7-1-default-1.conf
Default Entry: system-opensuse-tumbleweed-6.18.7-1-default-1.conf
Random Seed:
System Token: not set
Exists: no
Available Boot Loaders on ESP:
ESP: /boot/efi (/dev/disk/by-partuuid/7803c0f3-77d0-436a-871c-56cb28df2c54)
File: (can’t access /boot/efi: Permission denied)
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/7803c0f3-77d0-436a-871c-56cb28df2c54
Current Entry: system-opensuse-tumbleweed-6.18.7-1-default-1.conf
Default Entry: system-opensuse-tumbleweed-6.18.7-1-default-1.conf
Random Seed:
System Token: not set
Exists: yes
Available Boot Loaders on ESP:
ESP: /boot/efi (/dev/disk/by-partuuid/7803c0f3-77d0-436a-871c-56cb28df2c54)
File: ├─/EFI/BOOT/MokManager.efi
├─/EFI/BOOT/BOOTIA32.EFI
├─/EFI/BOOT/BOOTX64.EFI
├─/EFI/BOOT/fbia32.efi
├─/EFI/BOOT/fbx64.efi
└─/EFI/BOOT/fallback.efi
Can you please use the Preformatted text feature (button </>) instaed of the Blockquote feature (button") for computer text.
And do not type things like “running bootctl status gives:” but include the line with the command inside your copy/paste (like you did e.g. in your first post above).
The output you shared confirms grub2-bls is in use.
The sdbootutil cleanup command only removes stale BLS entries (entries whose kernel files are missing).
If you want to reduce ESP usage further, you could adjust zypper to keep the currently running kernel, and the newest installed kernel.Remove all older kernel versions. Do this with…
sudo sed -i 's/^multiversion.kernels.*/multiversion.kernels = latest,running/' /etc/zypp/zypp.conf
I think I’ll keep using latest and latest -1 for now.
I guess kerenl 6.18.3 and 6.18.5 come from 0 and 1 made during the initial installation (these were the boot options I had) snapshots
and 6.18.6 and 6.18.7 are the latest and latest-1 versions.
So is 4 kerenels correct for this setting? multiversion.kernels = latest,latest-1,running
I just used the default partitioning scheme of the tumbleweed installer. Can I increase the boot size now?
what should happen is the installer on detecting a typical win10 500MB efi partition is to present grub2-efi instead of grub2-bls as the default choice.
recommendations to offline reconfigure a efi partition before you install tw seems a little after the fact…
Also be aware that the automatic update to the latest 6.9.1 kernel will also change the boot configuration. In my case the graphical screen is disabled and the roll back at the boot screen fails completely wanting a root password but not accepting the one installed during installation.