diff options
author | Ondrej Kozina <okozina@redhat.com> | 2020-02-19 12:39:26 +0100 |
---|---|---|
committer | Ondrej Kozina <okozina@redhat.com> | 2020-09-25 17:01:36 +0200 |
commit | a8574d00552dc9f3012a3f84ab2bcac5fb6d7e7b (patch) | |
tree | 434342676f5c15df91fdb252d65722f6641cdf2b /man/systemd-cryptsetup-generator.xml | |
parent | fc6f1ad1211e7add81f6f14f09d141e1fe7d09a0 (diff) | |
download | systemd-a8574d00552dc9f3012a3f84ab2bcac5fb6d7e7b.tar.gz |
cryptsetup-generator: add detached LUKS header support
Adds support for LUKS detached header device on kernel
command line. It's introduced via extension to existing
luks.options 'header=' argument beyond colon (see examples
below). If LUKS header device is specified it's expected
to contain filesystem with LUKS header image on a path
specified in the first part of header specification.
The second parameter 'luks.data' specifies LUKS data device
supposed to be paired with detached LUKS header (note that
encrypted LUKS data device with detached header is unrecognisable
by standard blkid probe).
This adds support for LUKS encrypted rootfs partition with
detached header. It can also be used for initializing online LUKS2
encryption of data device.
Examples:
luks.data=<luks_uuid>=/dev/sdz
luks.data=<luks_uuid>=/dev/vg/lv
luks.data=<luks_uuid>=/dev/mapper/lv
luks.data=<luks_uuid>=PARTUUID=<part_uuid>
luks.data=<luks_uuid>=PARTLABEL=<part_uuid>
luks.options=<luks_uuid>=header=/header/path:UUID=<fs_uuid>
luks.options=<luks_uuid>=header=/header/path:PARTUUID=<part_uuid>
luks.options=<luks_uuid>=header=/header/path:PARTLABEL=<part_label>
luks.options=<luks_uuid>=header=/header/path:LABEL=<fs_label>
luks.options=<luks_uuid>=header=/header/path:/dev/sdx
luks.options=<luks_uuid>=header=/header/path:/dev/vg/lv
The '/header/path' is considered to be relative location within
filesystem residing on the header device specified beyond colon
character
Diffstat (limited to 'man/systemd-cryptsetup-generator.xml')
-rw-r--r-- | man/systemd-cryptsetup-generator.xml | 80 |
1 files changed, 67 insertions, 13 deletions
diff --git a/man/systemd-cryptsetup-generator.xml b/man/systemd-cryptsetup-generator.xml index e3c17d64d8..cb18db246b 100644 --- a/man/systemd-cryptsetup-generator.xml +++ b/man/systemd-cryptsetup-generator.xml @@ -105,6 +105,9 @@ LUKS device given by the UUID appear under the provided name.</para> + <para>This parameter is the analogue of the first <citerefentry><refentrytitle>crypttab</refentrytitle> + <manvolnum>5</manvolnum></citerefentry> field <replaceable>volume-name</replaceable>.</para> + <para><varname>rd.luks.name=</varname> is honored only by initial RAM disk (initrd) while <varname>luks.name=</varname> is honored by both the main system and the initrd.</para> @@ -112,20 +115,30 @@ </varlistentry> <varlistentry> - <term><varname>luks.options=</varname></term> - <term><varname>rd.luks.options=</varname></term> + <term><varname>luks.data=</varname></term> + <term><varname>rd.luks.data=</varname></term> - <listitem><para>Takes a LUKS super block UUID followed by an - <literal>=</literal> and a string of options separated by - commas as argument. This will override the options for the - given UUID.</para> - <para>If only a list of options, without an UUID, is - specified, they apply to any UUIDs not specified elsewhere, - and without an entry in - <filename>/etc/crypttab</filename>.</para><para> - <varname>rd.luks.options=</varname> is honored only by initial - RAM disk (initrd) while <varname>luks.options=</varname> is - honored by both the main system and the initrd.</para> + <listitem><para>Takes a LUKS super block UUID followed by a <literal>=</literal> and a block device + specification for device hosting encrypted data.</para> + + <para>For those entries specified with <varname>rd.luks.uuid=</varname> or + <varname>luks.uuid=</varname>, the data device will be set to the one specified by + <varname>rd.luks.data=</varname> or <varname>luks.data=</varname> of the corresponding UUID.</para> + + <para>LUKS data device parameter is usefull for specifying encrypted data devices with detached headers specified in + <varname>luks.options</varname> entry containing <literal>header=</literal> argument. For example, + <varname>rd.luks.uuid=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40 + <varname>rd.luks.options=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40=header=/path/to/luks.hdr + <varname>rd.luks.data=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40=/dev/sdx. + Hence, in this case, we will attempt to unlock LUKS device assembled from data device <literal>/dev/sdx</literal> + and LUKS header (metadata) put in <literal>/path/to/luks.hdr</literal> file. This syntax is for now + only supported on a per-device basis, i.e. you have to specify LUKS device UUID.</para> + + <para>This parameter is the analogue of the second <citerefentry><refentrytitle>crypttab</refentrytitle> + <manvolnum>5</manvolnum></citerefentry> field <replaceable>encrypted-device</replaceable>.</para> + + <para><varname>rd.luks.data=</varname> is honored only by initial RAM disk (initrd) while + <varname>luks.data=</varname> is honored by both the main system and the initrd.</para> </listitem> </varlistentry> @@ -157,6 +170,9 @@ This syntax is for now only supported on a per-device basis, i.e. you have to specify LUKS device UUID.</para> + <para>This parameter is the analogue of the third <citerefentry><refentrytitle>crypttab</refentrytitle> + <manvolnum>5</manvolnum></citerefentry> field <replaceable>key-file</replaceable>.</para> + <para><varname>rd.luks.key=</varname> is honored only by initial RAM disk (initrd) while @@ -165,6 +181,44 @@ the initrd.</para> </listitem> </varlistentry> + + <varlistentry> + <term><varname>luks.options=</varname></term> + <term><varname>rd.luks.options=</varname></term> + + <listitem><para>Takes a LUKS super block UUID followed by an + <literal>=</literal> and a string of options separated by + commas as argument. This will override the options for the + given UUID.</para> + <para>If only a list of options, without an UUID, is + specified, they apply to any UUIDs not specified elsewhere, + and without an entry in + <filename>/etc/crypttab</filename>.</para> + + <para>This parameter is the analogue of the fourth <citerefentry><refentrytitle>crypttab</refentrytitle> + <manvolnum>5</manvolnum></citerefentry> field <replaceable>options</replaceable>.</para> + + <para>It is possible to specify an external device which + should be mounted before we attempt to unlock the LUKS device. + systemd-cryptsetup will assemble LUKS device by combining + data device specified in <varname>luks.data</varname> with + detached LUKS header found in <literal>header=</literal> + argument. For example, + <varname>rd.luks.uuid=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40 + <varname>rd.luks.options=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40=header=/luks.hdr:LABEL=hdrdev + <varname>rd.luks.data=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40=/dev/sdx. + Hence, in this case, we will attempt to mount file system + residing on the block device with label <literal>hdrdev</literal>, and look + for <literal>luks.hdr</literal> on that file system. Said header will be used + to unlock (decrypt) encrypted data stored on /dev/sdx. + This syntax is for now only supported on a per-device basis, + i.e. you have to specify LUKS device UUID.</para> + + <para><varname>rd.luks.options=</varname> is honored only by initial + RAM disk (initrd) while <varname>luks.options=</varname> is + honored by both the main system and the initrd.</para> + </listitem> + </varlistentry> </variablelist> </refsect1> |