xref: /linux/Documentation/filesystems/efivarfs.rst (revision 06dedb45b79c6550b878244879f33b6e614126bd)
1*06dedb45SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
2*06dedb45SMauro Carvalho Chehab
3*06dedb45SMauro Carvalho Chehab=======================================
4*06dedb45SMauro Carvalho Chehabefivarfs - a (U)EFI variable filesystem
5*06dedb45SMauro Carvalho Chehab=======================================
6*06dedb45SMauro Carvalho Chehab
7*06dedb45SMauro Carvalho ChehabThe efivarfs filesystem was created to address the shortcomings of
8*06dedb45SMauro Carvalho Chehabusing entries in sysfs to maintain EFI variables. The old sysfs EFI
9*06dedb45SMauro Carvalho Chehabvariables code only supported variables of up to 1024 bytes. This
10*06dedb45SMauro Carvalho Chehablimitation existed in version 0.99 of the EFI specification, but was
11*06dedb45SMauro Carvalho Chehabremoved before any full releases. Since variables can now be larger
12*06dedb45SMauro Carvalho Chehabthan a single page, sysfs isn't the best interface for this.
13*06dedb45SMauro Carvalho Chehab
14*06dedb45SMauro Carvalho ChehabVariables can be created, deleted and modified with the efivarfs
15*06dedb45SMauro Carvalho Chehabfilesystem.
16*06dedb45SMauro Carvalho Chehab
17*06dedb45SMauro Carvalho Chehabefivarfs is typically mounted like this::
18*06dedb45SMauro Carvalho Chehab
19*06dedb45SMauro Carvalho Chehab	mount -t efivarfs none /sys/firmware/efi/efivars
20*06dedb45SMauro Carvalho Chehab
21*06dedb45SMauro Carvalho ChehabDue to the presence of numerous firmware bugs where removing non-standard
22*06dedb45SMauro Carvalho ChehabUEFI variables causes the system firmware to fail to POST, efivarfs
23*06dedb45SMauro Carvalho Chehabfiles that are not well-known standardized variables are created
24*06dedb45SMauro Carvalho Chehabas immutable files.  This doesn't prevent removal - "chattr -i" will work -
25*06dedb45SMauro Carvalho Chehabbut it does prevent this kind of failure from being accomplished
26*06dedb45SMauro Carvalho Chehabaccidentally.
27