summaryrefslogtreecommitdiffstats
path: root/man/systemd-boot-system-token.service.xml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 13:00:47 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 13:00:47 +0000
commit2cb7e0aaedad73b076ea18c6900b0e86c5760d79 (patch)
treeda68ca54bb79f4080079bf0828acda937593a4e1 /man/systemd-boot-system-token.service.xml
parentInitial commit. (diff)
downloadsystemd-upstream.tar.xz
systemd-upstream.zip
Adding upstream version 247.3.upstream/247.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/systemd-boot-system-token.service.xml')
-rw-r--r--man/systemd-boot-system-token.service.xml76
1 files changed, 76 insertions, 0 deletions
diff --git a/man/systemd-boot-system-token.service.xml b/man/systemd-boot-system-token.service.xml
new file mode 100644
index 0000000..b94665b
--- /dev/null
+++ b/man/systemd-boot-system-token.service.xml
@@ -0,0 +1,76 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
+
+<refentry id="systemd-boot-system-token.service" conditional='ENABLE_EFI'
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>systemd-boot-system-token.service</title>
+ <productname>systemd</productname>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd-boot-system-token.service</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd-boot-system-token.service</refname>
+ <refpurpose>Generate an initial boot loader system token and random seed</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>systemd-boot-system-token.service</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><filename>systemd-boot-system-token.service</filename> is a system service that automatically
+ generates a 'system token' to store in an EFI variable in the system's NVRAM and a random seed to store
+ on the EFI System Partition ESP on disk. The boot loader may then combine these two randomized data
+ fields by cryptographic hashing, and pass it to the OS it boots as initialization seed for its entropy
+ pool. The random seed stored in the ESP is refreshed on each reboot ensuring that multiple subsequent
+ boots will boot with different seeds. The 'system token' is generated randomly once, and then
+ persistently stored in the system's EFI variable storage.</para>
+
+ <para>The <filename>systemd-boot-system-token.service</filename> unit invokes the <command>bootctl
+ random-seed</command> command, which updates the random seed in the ESP, and initializes the 'system
+ token' if it's not initialized yet. The service is conditionalized so that it is run only when all of the
+ below apply:</para>
+
+ <itemizedlist>
+ <listitem><para>A boot loader is used that implements the <ulink
+ url="https://systemd.io/BOOT_LOADER_INTERFACE">Boot Loader Interface</ulink> (which defines the 'system
+ token' concept).</para></listitem>
+
+ <listitem><para>Either a 'system token' was not set yet, or the boot loader has not passed the OS a
+ random seed yet (and thus most likely has been missing the random seed file in the
+ ESP).</para></listitem>
+
+ <listitem><para>The system is not running in a VM environment. This case is explicitly excluded since
+ on VM environments the ESP backing storage and EFI variable storage is typically not physically
+ separated and hence booting the same OS image in multiple instances would replicate both, thus reusing
+ the same random seed and 'system token' among all instances, which defeats its purpose. Note that it's
+ still possible to use boot loader random seed provisioning in this mode, but the automatic logic
+ implemented by this service has no effect then, and the user instead has to manually invoke the
+ <command>bootctl random-seed</command> acknowledging these restrictions.</para></listitem>
+ </itemizedlist>
+
+ <para>For further details see
+ <citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, regarding
+ the command this service invokes.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>