grub: Environment block

 
 15.2 The GRUB environment block
 ===============================
 
 It is often useful to be able to remember a small amount of information
 from one boot to the next.  For example, you might want to set the
 default menu entry based on what was selected the last time.  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 (⇒load_env) loads
 environment variables from it, and the 'save_env' (⇒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'
 (⇒Simple configuration).