On my F30 (freshly-installed, no version upgrades) /boot/grub2/grubenv is just a symlink to /boot/efi/EFI/fedora/grubenv.
/boot/grub2 is the location used by default in non-UEFI (i.e. legacy/BIOS) systems, the second location is used on UEFI systems. I think (I don’t know for sure) that symlink is there just in case, for compatibility reasons.
Also if you haven’t run the commands @vgaetera provided, can you post here the contents of your OLD grubenv?
sudo less /boot/efi/EFI/fedora/grubenv
If you already did replace yours, then just look at it (no need to post it here). It’s just a text file with some grub saved settings, nothing scary or extraordinary.
Edit:
And the reason I ask you to post the contents here is for us to see if we can spot something specific in the old grubenv file which could make grub2-mkconfig to behave correctly in non-BLS mode but error out with BLS mode turned on.
It can be useful… if it’s some pitfall in grub behaviour, especially when updating from non-BLS configuration to a BLS-enabled one.
I second @vgaetera’s suggestion, you should regenerate your grubenv. I’m also quite sure (though I’ve not checked it and I can be wrong, of course) that if you just delete grubenv file then reboot, you’ll boot as usual and grub will recreate grubenv in the process. Still @vgaetera offers a safer way.
Also please check if /boot/grub2/grubenv is a symlink or not:
[user@host ~]# sudo file /boot/grub2/grubenv
/boot/grub2/grubenv: symbolic link to ../efi/EFI/fedora/grubenv
Also ls -lh
shows clearly if a file’s a symlink or not.
If it already is, then you don’t need to run this command:
Skip it and move to the next one.
If it isn’t a symlink but an ordinary file, then you can delete it an make a symlink in it’s place (to correspond to clean Fedora installation):
sudo ln -s /boot/efi/EFI/fedora/grubenv /boot/grub2/grubenv