Skip to content

Commit 677b722

Browse files
keszybzpoettering
andcommitted
specs/bls: say that XBOOTLDR must be FAT too
Let's just say ESP/XBOOTLDR has to be VFAT. Everything else is just pain, because it means we cannot share the dirs between OSes, systems and so on. Moreover, it's a security issue to use more complex file systems, as these file systems come without integrity protection, i.e. they cannot be authenticated before parsing them, which makes it key to limit use to VFAT. Since systemd/systemd#39267, systemd will not mount ESP/XBOOTLDR as anything else than VFAT for these reasons, and the spec should be adjusted the same way for the same reasons. Co-authored-by: Lennart Poettering <[email protected]>
1 parent ab386f9 commit 677b722

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

specs/boot_loader_specification.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,19 @@ same disk. Instead of maintaining one boot partition per installed OS (as
6464
`/boot/` was traditionally handled), all installed OSes use the same place for
6565
boot loader menu entries._
6666

67-
For systems where the firmware is able to read file systems directly, the ESP
68-
must — and the MBR boot and GPT XBOOTLDR partition should — be a file system
69-
readable by the firmware. For most systems this means VFAT (16 or 32 bit).
70-
Applications accessing both partitions should hence not assume that
71-
fancier file system features such as symlinks, hardlinks, access control or
72-
case sensitivity are supported.
67+
For systems where the firmware is able to read file systems directly,
68+
the ESP and XBOOTLDR must use a file system readable by the firmware.
69+
For most systems this means VFAT (16 or 32 bit).
70+
The same file system type must be used for both partitions.
71+
72+
Inode types other than directories and regular files
73+
are not allowed as any part of the paths defined by this specification.
74+
If for some reason a file system type allowing those is used,
75+
those must not be created by any tools supporting this specification,
76+
and such paths must be ignored by tools supporting this specification.
77+
78+
Applications should not expect case sensitivity,
79+
and need to be able to deal with case insensitive behaviour of the file system.
7380

7481
Note that the partitions described here are not the exclusive territory of this specification.
7582
This specification only defines semantics of the `/loader/entries/` directory
@@ -144,6 +151,8 @@ the inner `autofs` will trigger the outer one. Mounting the two partitions via
144151
`autofs` is recommended because the simple VFAT file system has weak data
145152
integrity properties and should remain unmounted whenever possible.)
146153

154+
From Linux, the file systems must be mounted with `MS_NOEXEC`, `MS_NODEV`, `MS_NOSUID`, `MS_NOSYMFOLLOW`.
155+
147156
## Boot Loader Entries
148157

149158
This specification defines two types of boot loader entries.

0 commit comments

Comments
 (0)