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