man: document systemd-bless-boot
authorLennart Poettering <lennart@poettering.net>
Tue, 26 Jun 2018 13:03:27 +0000 (15:03 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 19 Oct 2018 20:34:50 +0000 (22:34 +0200)
man/rules/meson.build
man/systemd-bless-boot.service.xml [new file with mode: 0644]

index 3602bba..93e410a 100644 (file)
@@ -617,6 +617,7 @@ manpages = [
  ['systemd-ask-password', '1', [], ''],
  ['systemd-backlight@.service', '8', ['systemd-backlight'], 'ENABLE_BACKLIGHT'],
  ['systemd-binfmt.service', '8', ['systemd-binfmt'], 'ENABLE_BINFMT'],
+ ['systemd-bless-boot.service', '8', [], 'ENABLE_EFI'],
  ['systemd-boot', '7', ['sd-boot'], 'ENABLE_EFI'],
  ['systemd-cat', '1', [], ''],
  ['systemd-cgls', '1', [], ''],
diff --git a/man/systemd-bless-boot.service.xml b/man/systemd-bless-boot.service.xml
new file mode 100644 (file)
index 0000000..fb362ce
--- /dev/null
@@ -0,0 +1,115 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+  SPDX-License-Identifier: LGPL-2.1+
+-->
+
+<refentry id="systemd-bless-boot.service" conditional='ENABLE_EFI'
+          xmlns:xi="http://www.w3.org/2001/XInclude">
+
+  <refentryinfo>
+    <title>systemd-bless-boot.service</title>
+    <productname>systemd</productname>
+  </refentryinfo>
+
+  <refmeta>
+    <refentrytitle>systemd-bless-boot.service</refentrytitle>
+    <manvolnum>8</manvolnum>
+  </refmeta>
+
+  <refnamediv>
+    <refname>systemd-bless-boot.service</refname>
+    <refpurpose>Mark current boot process as successful</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <para><filename>systemd-bless-boot.service</filename></para>
+    <para><filename>/usr/lib/systemd/system-bless-boot</filename></para>
+  </refsynopsisdiv>
+
+  <refsect1>
+    <title>Description</title>
+
+    <para><filename>systemd-bless-boot.service</filename> is a system service that marks the current boot process as
+    successful. It's automatically pulled into the initial transaction when
+    <citerefentry><refentrytitle>systemd-bless-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+    detects that <citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> style
+    boot counting is used.</para>
+
+    <para>Internally, the service operates based on the <varname>LoaderBootCountPath</varname> EFI variable (of the
+    vendor UUID <constant>4a67b082-0a4c-41cf-b6c7-440b29bb8c4</constant>), which is passed from the boot loader to the
+    OS. It contains a file system path (relative to the EFI system partition) of the <ulink
+    url="https://systemd.io/BOOT_LOADER_SPECIFICATION">Boot Loader Specification</ulink> compliant boot loader entry
+    file or unified kernel image file that was used to boot up the
+    system. <command>systemd-bless-boot.service</command> removes the two 'tries done' and 'tries left' numeric boot
+    counters from the filename, which indicates to future invocations of the boot loader that the entry has completed
+    booting successfully at least once. (This service will hence rename the boot loader entry file or unified kernel
+    image file on the first successful boot.)</para>
+  </refsect1>
+
+  <refsect1>
+    <title>Options</title>
+
+    <para>The <filename>/usr/lib/systemd/system-bless-boot</filename> executable may also be invoked from the
+    command line, taking one of the following command arguments:</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>status</option></term>
+
+        <listitem><para>The current status of the boot loader entry file or unified kernel image file is shown. This
+        outputs one of <literal>good</literal>, <literal>bad</literal>, <literal>indeterminate</literal>,
+        <literal>clean</literal>, depending on the state and previous invocations of the command. The string
+        <literal>indeterminate</literal> is shown initially after boot, before it has been marked as "good" or
+        "bad". The string <literal>good</literal> is shown after the boot was marked as "good" with the
+        <option>good</option> command below, and "bad" conversely after the <option>bad</option> command was
+        invoked. The string <literal>clean</literal> is returned when boot counting is currently not in effect.</para>
+
+        <para>This command is implied if no command argument is specified.</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>good</option></term>
+
+        <listitem><para>When invoked, the current boot loader entry file or unified kernel image file will be marked as
+        "good", executing the file rename operation described above. This command is intended to be invoked at the end
+        of a successful boot. The <filename>systemd-bless-boot.service</filename> unit invokes this
+        command.</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>bad</option></term>
+
+        <listitem><para>When called the 'tries left' counter in the boot loader entry file name or unified kernel image
+        file name is set to zero, marking the boot loader entry or kernel image as "bad", so that the boot loader won't
+        consider it anymore on future boots (at least as long as there are other entries available that are not marked
+        "bad" yet). This command is normally not executed, but can be used to instantly put an end to the boot counting
+        logic if a problem is detected and persistently mark the boot entry as bad.</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>indeterminate</option></term>
+
+        <listitem><para>This command undoes any marking of the current boot loader entry file or unified kernel image
+        file as good or bad. This is implemented by renaming the boot loader entry file or unified kernel image file
+        back to the path encoded in the <varname>LoaderBootCountPath</varname> EFI variable.</para></listitem>
+      </varlistentry>
+
+      <xi:include href="standard-options.xml" xpointer="help" />
+      <xi:include href="standard-options.xml" xpointer="version" />
+
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>See Also</title>
+    <para>
+      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+    </para>
+  </refsect1>
+
+</refentry>