GRUB deliberately does not implement support for writing files in order to
minimise the possibility of the boot loader being responsible for file
system corruption, so a GRUB configuration file cannot just create a
file in the ordinary way. However, GRUB provides an "environment block"
which can be used to save a small amount of state.
The environment block is a preallocated 1024-byte file, which
normally lives in '/boot/grub/grubenv' (although you should not assume
this). At boot time, the 'load_env' command (*note load_env::) loads
environment variables from it, and the 'save_env' (*note save_env::)
command saves environment variables to it. From a running system, the
'grub-editenv' utility can be used to edit the environment block.
For safety reasons, this storage is only available when installed on
a plain disk (no LVM or RAID), using a non-checksumming filesystem (no
ZFS), and using BIOS or EFI functions (no ATA, USB or IEEE1275).
'grub-mkconfig' uses this facility to implement 'GRUB_SAVEDEFAULT'
(*note Simple configuration::).
Partager