summaryrefslogtreecommitdiffstats
path: root/man/ukify.xml
diff options
context:
space:
mode:
Diffstat (limited to 'man/ukify.xml')
-rw-r--r--man/ukify.xml54
1 files changed, 54 insertions, 0 deletions
diff --git a/man/ukify.xml b/man/ukify.xml
index 1c52c9414b..5e7681279b 100644
--- a/man/ukify.xml
+++ b/man/ukify.xml
@@ -229,6 +229,18 @@
</varlistentry>
<varlistentry>
+ <term><option>--extend=<replaceable>PATH</replaceable></option></term>
+
+ <listitem><para>Takes a path to an existing PE file to import into the newly generated PE file. If
+ this option is used all UKI PE sections of the specified PE file are copied into the target PE file
+ before any new PE sections are appended. This is useful for generating multi-profile UKIs. Note
+ that this only copies PE sections that are defined by the UKI specification, and ignores any other,
+ for example <literal>.text</literal> or similar.</para>
+
+ <xi:include href="version-info.xml" xpointer="v257"/></listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><option>--tools=<replaceable>DIRS</replaceable></option></term>
<listitem><para>Specify one or more directories with helper tools. <command>ukify</command> will
@@ -703,6 +715,48 @@ Writing public key for PCR signing to /etc/kernel/pcr-system.pub.pem
by default, so after this file has been created, installations of kernels that create a UKI on the
local machine using <command>kernel-install</command> will perform signing using this config.</para>
</example>
+
+ <example>
+ <title>Multi-Profile PE</title>
+
+ <para>First, create the base UKI:</para>
+ <programlisting>$ ukify build \
+ --linux=/lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \
+ --initrd=/some/path/initramfs-6.0.9-300.fc37.x86_64.img \
+ --cmdline='quiet rw' \
+ --output=base.efi
+ </programlisting>
+
+ <para>Then, extend the base UKI with information about profile @0:</para>
+
+ <programlisting>$ ukify build \
+ --extend=base.efi \
+ --profile='TITLE=Base' \
+ --output=base-with-profile-0.efi
+ </programlisting>
+
+ <para>Add a second profile (@1):</para>
+
+ <programlisting>$ ukify build \
+ --extend=base-with-profile-0.efi \
+ --profile='TITLE=Boot into Storage Target Mode
+ID=storagetm' \
+ --cmdline='quiet rw rd.systemd.unit=stroage-target-mode.target' \
+ --output=base-with-profile-0-1.efi
+ </programlisting>
+
+ <para>Add a third profile (@2):</para>
+
+ <programlisting>$ ukify build \
+ --extend=base-with-profile-0-1.efi \
+ --profile='TITLE=Factory Reset
+ID=factory-reset' \
+ --cmdline='quiet rw systemd.unit=factory-reset.target' \
+ --output=base-with-profile-0-1-2.efi
+ </programlisting>
+
+ <para>The resulting UKI <filename>base-with-profile-0-1-2.efi</filename> will now contain three profiles.</para>
+ </example>
</refsect1>
<refsect1>