FS#70140 - pstore can fill EFI storage, prevent machines from booting, and prevent bootloader installation

Attached to Project: Arch Linux
Opened by Jonathon (jonathon) - Tuesday, 23 March 2021, 22:14 GMT
Last edited by Jan Alexander Steffens (heftig) - Wednesday, 24 March 2021, 19:28 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

By default, pstore will use efivars as persistent storage. This has the effect of placing "dump" files under /sys/firmware/efi/efivarfs . In certain situations this can fill NVRAM and potentially leave the system unbootable. It can also create issues when installing a bootloader (e.g. GRUB will complain of a lack of space), and will no doubt negatively affect NVRAM lifespan.

The default behaviour can be controlled by the kernel config option CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE; this is unset by default in Arch kernels.

With that option enabled, a kernel option can be passed for pstore to use efivar as persistent storage when needed.

Example inclusion in kernel 3.4, https://lore.kernel.org/patchwork/patch/470715/:

"We know that with some firmware implementations writing too much data to UEFI variables can lead to bricking machines. Recent changes attempt to address this issue, but for some it may still be prudent to avoid writing large amounts of data until the solution has been proven on a wide variety of hardware.

"Crash dumps or other data from pstore can potentially be a large data source. Add a pstore_module parameter to efivars to allow disabling its use as a backend for pstore. Also add a config option, CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE, to allow setting the default value of this paramter to true (i.e. disabled by default)."

Red Hat/Fedora seem to have enabled that option back in 2013 (https://bugzilla.redhat.com/show_bug.cgi?id=919485, though that might well have changed since).


Additional info:
* linux, linux-zen 5.11.*
* 2014 example of boot loader installation failure: https://bbs.archlinux.org/viewtopic.php?id=182978
* 2021 example of boot loader installation failure: https://forum.garudalinux.org/t/garuda-installation-failed/5507/30

Steps to reproduce:

* Not easily reproducible, can depend on oopses, panics, etc.
* ls /sys/firmware/efi/efivarfs/dump-*
This task depends upon

Closed by  Jan Alexander Steffens (heftig)
Wednesday, 24 March 2021, 19:28 GMT
Reason for closing:  Fixed
Additional comments about closing:  linux 5.11.9.arch1-1
Comment by Jonathon (jonathon) - Tuesday, 23 March 2021, 22:27 GMT
Also thinking just now, this could also explain the regular reports about laptops not booting after an update, not being able to enter BIOS/UEFI menus, requiring a BIOS reset, etc. ...

Loading...