error sparse file not allowed at boot

Hi, have this message on a system I installed yesterday in the absolute same way as I installed a different system
with the exception that the one with the problem has dual boot windows

get this message after selection of boot

there are similar threads in this forum but non of them provide a solution, is there a solution meanwhile, withour re install with ext4?

The message is misleading and usually simply means that grub cannot write grubenv. This happens when /boot/grub2/grubenv is located on some filesystems (like btrfs) or on software RAID or LVM. You need to provide more details about your configuration.

the configuration was default, btrfs on the system partition.
the only thing done was setup grub2 to save the last booted entry and boot this the next time, a
simple function that worked for so many years on so many Linux installations …
and this does not work on a default openSuse Leap installation :frowning:

I found out that this problem is years old and unsolved,
if you want grub to remember your last boot decision, you can not use btrfs. Great user experience …

If you care about this functionality, open bug report so it can be fixed.

situation is not that simple:
It seems neither grub2 nor btrfs developers feel responsible for this problem,
A distribution can not do a lot other than not putting brtfs as default file system, or adding a warning …
However, I feel that addressing this bug/problem to openSuse seems to be the wrong location

I have no final opinion if btrfs is the right file system for a Linux notebook /SSD installation since this is the first time I use it.
maybe if I ever have a reason to say that this is the wrong choice for a notebook I will address this issue at openSuse

You are mistaken. (open)SUSE includes patch to work around this limitation on btrfs, but patch forgot to modify save default code path. So openSUSE is exactly the right place to do it in this specific case.

As for general case - it is very unlikely that grub will get code to write to btrfs. More likely is design that puts environment block outside of filesystem (which is exactly what SUSE patch does). We just need generic framework to identify where environment block is stored (for now grub never needed to identify individual device - it was enough to identify filesystem).

If you have ideas (or even better - can implement them) - it would be great; in this case grub-devel is the right place to contact.

I wonder why this file should be on the btrfs partition and not on the FAT/uefi partition where grub itself is, but I have to less knowledge about the topic.
however, if there is a patch, I could look and start learning what SUSE is doing, coding knowledge should not be a problem

Grub isn’t really on the FAT/UEFI partition. Part of grub is there. But the rest of grub is under “/boot”.