I'm totally guessing, but since /etc/default/grub is the same on working and not
working systems, this implicates grubenv. What I'm not sure of is the proper way to
obliterate it and make sure it gets recreated correctly. I think you could just delete it,
and then:
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
However, before you do that it might be useful to capture some debug output from grub.cfg
creation with this:
bash -x grub2-mkconfig
Post the output. This intentionally leaves out the -o. I'm not sure this will tell us
why the warning is produced. Also it's just a warning, it's not an actual problem
or error.
Chris Murphy