Bug#891434: grub-efi: System fails to boot after "No space left on device" on EFI variable storage

Ralf Jung post at ralfj.de
Fri Dec 14 09:22:49 GMT 2018


Hi,

> Fixing this does seem like it would be a good idea for general
> robustness against dodgy firmware (this is not the first iteration of
> problems along these lines).  It would take some development work, but
> hopefully not too much.
> 
> Things that GRUB can't do, as far as I can tell:
> 
>  * I don't think there's a way for GRUB to check whether it will be
>    possible to recreate a boot entry later; as I understand it, that
>    depends on various low-level details, including firmware-specific
>    quirks.
>    
>  * Even detecting that nothing changed would require cooperation from
>    efibootmgr, since the encoding of the EFI variable is an
>    implementation detail there (so we can't just read it out and
>    compare), and efibootmgr doesn't expose a way for GRUB to say "set
>    this configuration, but only if it's different from what's already
>    there".
> 
> However, I think GRUB can at least manage to delete all but one entry
> from the same distributor rather than all of them, and if it finds one
> remaining entry then it can modify that rather than writing a brand new
> variable.  As I understand it, that would probably be enough to fix this
> bug?

Assuming that modification works even when the variable storage is (close to)
full, then yes, that would at least keep the device bootable which would be a
big improvement.

Kind regards,
Ralf



More information about the Pkg-grub-devel mailing list