2021-09-26 19:53:42 +03:00
<?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= "integritytab" conditional= 'HAVE_LIBCRYPTSETUP' xmlns:xi= "http://www.w3.org/2001/XInclude" >
<refentryinfo >
<title > integritytab</title>
<productname > systemd</productname>
</refentryinfo>
<refmeta >
<refentrytitle > integritytab</refentrytitle>
<manvolnum > 5</manvolnum>
</refmeta>
<refnamediv >
<refname > integritytab</refname>
<refpurpose > Configuration for integrity block devices</refpurpose>
</refnamediv>
<refsynopsisdiv >
<para > <filename > /etc/integritytab</filename> </para>
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
<para > The <filename > /etc/integritytab</filename> file describes
integrity protected block devices that are set up during
system boot.</para>
<para > Empty lines and lines starting with the <literal > #</literal>
character are ignored. Each of the remaining lines describes one
verity integrity protected block device. Fields are delimited by
white space.</para>
<para > Each line is in the form<programlisting > <replaceable > volume-name</replaceable> <replaceable > block-device</replaceable>
<replaceable > [keyfile|-]</replaceable> <replaceable > [options|-]</replaceable> </programlisting>
The first two fields are mandatory, the remaining two are optional and only required if user specified non-default options during integrity format.</para>
<para > The first field contains the name of the resulting integrity volume; its block device is set up
below <filename > /dev/mapper/</filename> .</para>
<para > The second field contains a path to the underlying block device, or a specification of a block device via
<literal > UUID=</literal> followed by the UUID,
<literal > PARTUUID=</literal> followed by the partition UUID,
<literal > LABEL=</literal> followed by the label,
2022-02-23 00:54:23 +03:00
<literal > PARTLABEL=</literal> followed by the partition label.
2021-09-26 19:53:42 +03:00
</para>
<para > The third field if present contains an absolute filename path to a key file or a <literal > -</literal>
to specify none. When the filename is present, the "integrity-algorithm" defaults to <literal > hmac-sha256</literal>
with the key length derived from the number of bytes in the key file. At this time the only supported integrity algorithm
when using key file is hmac-sha256. The maximum size of the key file is 4096 bytes.
</para>
<para > The fourth field, if present, is a comma-delimited list of options or a <literal > -</literal> to specify none. The following options are
recognized:</para>
<variablelist >
<varlistentry >
<term > <option > allow-discards</option> </term>
<listitem > <para >
Allow the use of discard (TRIM) requests for the device.
This option is available since the Linux kernel version 5.7.
</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > journal-watermark=[0..100]%</option> </term>
<listitem > <para >
Journal watermark in percent. When the journal percentage exceeds this watermark, the journal flush will be started. Setting a value of
"0%" uses default value.
</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > journal-commit-time=[0..N]</option> </term>
<listitem > <para >
Commit time in milliseconds. When this time passes (and no explicit flush operation was issued), the journal is written. Setting a value of
zero uses default value.
</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > data-device=/dev/disk/by-...</option> </term>
<listitem > <para >
Specify a separate block device that contains existing data. The second field specified in the
integritytab for block device then will contain calculated integrity tags and journal for data-device,
but not the end user data.
</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > integrity-algorithm=[crc32c|crc32|sha1|sha256|hmac-sha256]</option> </term>
<listitem > <para >
The algorithm used for integrity checking. The default is crc32c. Must match option used during format.
</para> </listitem>
</varlistentry>
</variablelist>
<para > At early boot and when the system manager configuration is
reloaded, this file is translated into native systemd units by
<citerefentry > <refentrytitle > systemd-integritysetup-generator</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> .</para>
</refsect1>
<refsect1 >
<title > Examples</title>
<example >
<title > /etc/integritytab</title>
<para > Set up two integrity protected block devices. </para>
<programlisting > home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8 - journal-commit-time=10,allow-discards,journal-watermark=55%
data PARTUUID=5d4b1808-be76-774d-88af-03c4c3a41761 - allow-discards
</programlisting>
</example>
<example >
<title > /etc/integritytab</title>
<para > Set up 1 integrity protected block device using defaults </para>
<programlisting > home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8</programlisting>
</example>
<example >
<title > /etc/integritytab</title>
<para > Set up 1 integrity device using existing data block device which contains user data </para>
<programlisting > home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8 - data-device=/dev/disk/by-uuid/9276d9c0-d4e3-4297-b4ff-3307cd0d092f</programlisting>
</example>
<example >
<title > /etc/integritytab</title>
<para > Set up 1 integrity device using a HMAC key file using defaults </para>
<programlisting > home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8 /etc/hmac.key</programlisting>
</example>
</refsect1>
<refsect1 >
<title > See Also</title>
<para >
<citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > systemd-integritysetup@.service</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > systemd-integritysetup-generator</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
<citerefentry project= 'die-net' > <refentrytitle > integritysetup</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
</para>
</refsect1>
</refentry>