1<?xml version="1.0"?> 2<!--*-nxml-*--> 3<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 4 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> 5<!-- SPDX-License-Identifier: LGPL-2.1-or-later --> 6<refentry id="systemd-veritysetup-generator" conditional='HAVE_LIBCRYPTSETUP'> 7 8 <refentryinfo> 9 <title>systemd-veritysetup-generator</title> 10 <productname>systemd</productname> 11 </refentryinfo> 12 13 <refmeta> 14 <refentrytitle>systemd-veritysetup-generator</refentrytitle> 15 <manvolnum>8</manvolnum> 16 </refmeta> 17 18 <refnamediv> 19 <refname>systemd-veritysetup-generator</refname> 20 <refpurpose>Unit generator for verity protected block devices</refpurpose> 21 </refnamediv> 22 23 <refsynopsisdiv> 24 <para><filename>/usr/lib/systemd/system-generators/systemd-veritysetup-generator</filename></para> 25 </refsynopsisdiv> 26 27 <refsect1> 28 <title>Description</title> 29 30 <para><filename>systemd-veritysetup-generator</filename> is a generator that translates kernel command line options 31 configuring verity protected block devices into native systemd units early at boot and when 32 configuration of the system manager is reloaded. This will create 33 <citerefentry><refentrytitle>systemd-veritysetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> 34 units as necessary.</para> 35 36 <para>Currently, only two verity devices may be set up with this generator, backing the root and <filename>/usr</filename> file systems of the 37 OS.</para> 38 39 <para><filename>systemd-veritysetup-generator</filename> implements 40 <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para> 41 </refsect1> 42 43 <refsect1> 44 <title>Kernel Command Line</title> 45 46 <para><filename>systemd-veritysetup-generator</filename> 47 understands the following kernel command line parameters:</para> 48 49 <variablelist class='kernel-commandline-options'> 50 <varlistentry> 51 <term><varname>systemd.verity=</varname></term> 52 <term><varname>rd.systemd.verity=</varname></term> 53 54 <listitem><para>Takes a boolean argument. Defaults to <literal>yes</literal>. If <literal>no</literal>, 55 disables the generator entirely. <varname>rd.systemd.verity=</varname> is honored only by the initial RAM disk 56 (initrd) while <varname>systemd.verity=</varname> is honored by both the host system and the 57 initrd.</para></listitem> 58 </varlistentry> 59 60 <varlistentry> 61 <term><varname>roothash=</varname></term> 62 63 <listitem><para>Takes a root hash value for the root file system. Expects a hash value formatted in hexadecimal 64 characters of the appropriate length (i.e. most likely 256 bit/64 characters, or longer). If not specified via 65 <varname>systemd.verity_root_data=</varname> and <varname>systemd.verity_root_hash=</varname>, the hash and 66 data devices to use are automatically derived from the specified hash value. Specifically, the data partition 67 device is looked for under a GPT partition UUID derived from the first 128bit of the root hash, the hash 68 partition device is looked for under a GPT partition UUID derived from the last 128bit of the root hash. Hence 69 it is usually sufficient to specify the root hash to boot from a verity protected root file system, as 70 device paths are automatically determined from it — as long as the partition table is properly set up.</para> 71 </listitem> 72 </varlistentry> 73 74 <varlistentry> 75 <term><varname>systemd.verity_root_data=</varname></term> 76 <term><varname>systemd.verity_root_hash=</varname></term> 77 78 <listitem><para>These two settings take block device paths as arguments and may be used to explicitly 79 configure the data partition and hash partition to use for setting up the verity protection for the root file 80 system. If not specified, these paths are automatically derived from the <varname>roothash=</varname> argument 81 (see above).</para></listitem> 82 </varlistentry> 83 84 <varlistentry> 85 <term><varname>systemd.verity_root_options=</varname></term> 86 87 <listitem><para>Takes a comma-separated list of dm-verity options. Expects the following options 88 <option>ignore-corruption</option>, <option>restart-on-corruption</option>, <option>ignore-zero-blocks</option>, 89 <option>check-at-most-once</option>, <option>panic-on-corruption</option> and 90 <option>root-hash-signature=<replaceable>PATH</replaceable>|base64:<replaceable>HEX</replaceable></option>. See 91 <citerefentry project='die-net'><refentrytitle>veritysetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for more 92 details.</para></listitem> 93 </varlistentry> 94 95 <varlistentry> 96 <term><varname>usrhash=</varname></term> 97 <term><varname>systemd.verity_usr_data=</varname></term> 98 <term><varname>systemd.verity_usr_hash=</varname></term> 99 <term><varname>systemd.verity_usr_options=</varname></term> 100 101 <listitem><para>Equivalent to their counterparts for the root file system as described above, but apply to the <filename>/usr/</filename> file system instead.</para></listitem> 102 </varlistentry> 103 </variablelist> 104 </refsect1> 105 106 <refsect1> 107 <title>See Also</title> 108 <para> 109 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, 110 <citerefentry><refentrytitle>systemd-veritysetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, 111 <citerefentry project='die-net'><refentrytitle>veritysetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>, 112 <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> 113 </para> 114 </refsect1> 115 116</refentry> 117