After a recent system update I got the following error message:
Error: invalid environment block Press any key to continue...
Luckily the system would boot up but ignoring errors isn’t best practice. This error is caused by a faulty GRUB2 environment block. This is a file located in /boot/grub/grubenv.
You can easily regenerate it with the following commands. It is advisable to make a backup copy the file just in case you need to revert.
# grub-editenv grubenv create # grub-editenv grubenv set default= # grub-editenv grubenv list # update-grub
After rebooting the message should have disappeared.
If you can’t boot from your system drive you can use a Live CD and then mount your system’s boot partition and apply the same commands.
I haven’t tested this part personally but maybe the commands will help as a reference. Details are scarce on purpose, check what the commands do before doing anything.
# mount /dev/sda1 /mnt/boot/efi or # mount /dev/sda1 /mnt/boot/ # grub-editenv /mnt/boot/grub/grubenv grubenv create # grub-editenv /mnt/boot/grub/grubenv grubenv set default= # grub-editenv /mnt/boot/grub/grubenv grubenv list # grub-mkconfig -o /mnt/boot/grub/grub.cfg
The other approach, also untested by me, could involve chroot.
# mount /dev/sda2 /target # mount --bind /dev /target/dev # mount --bind /dev/pts /target/dev/pts # mount --bind /sys /target/sys # mount --bind /proc /target/proc # mount /dev/sda1 /target/boot chroot /target # grub-editenv grubenv create # grub-editenv grubenv set default= # grub-editenv grubenv list # update-grub