2015-09-23 20:36:21 +03:00
<?xml version='1.0'?> <!-- * - Mode: nxml; nxml - child - indent: 2; indent - tabs - mode: nil - * -->
2012-03-16 01:36:33 +04:00
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2015-06-18 20:47:44 +03:00
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
2012-03-16 01:36:33 +04:00
<!--
This file is part of systemd.
Copyright 2012 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
2012-04-12 02:20:58 +04:00
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
2012-03-16 01:36:33 +04:00
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2012-04-12 02:20:58 +04:00
Lesser General Public License for more details.
2012-03-16 01:36:33 +04:00
2012-04-12 02:20:58 +04:00
You should have received a copy of the GNU Lesser General Public License
2012-03-16 01:36:33 +04:00
along with systemd; If not, see <http: / / w w w . g n u . o r g / l i c e n s e s /> .
-->
2014-02-13 23:33:51 +04:00
<refentry id= "systemd-machine-id-setup"
2015-02-04 05:14:13 +03:00
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo >
<title > systemd-machine-id-setup</title>
<productname > systemd</productname>
<authorgroup >
<author >
<contrib > Developer</contrib>
<firstname > Lennart</firstname>
<surname > Poettering</surname>
<email > lennart@poettering.net</email>
</author>
2015-09-23 20:36:21 +03:00
<author >
<contrib > Developer</contrib>
<firstname > Didier</firstname>
<surname > Roche</surname>
<email > didrocks@ubuntu.com</email>
</author>
2015-02-04 05:14:13 +03:00
</authorgroup>
</refentryinfo>
<refmeta >
<refentrytitle > systemd-machine-id-setup</refentrytitle>
<manvolnum > 1</manvolnum>
</refmeta>
<refnamediv >
<refname > systemd-machine-id-setup</refname>
<refpurpose > Initialize the machine ID in /etc/machine-id</refpurpose>
</refnamediv>
<refsynopsisdiv >
<cmdsynopsis >
<command > systemd-machine-id-setup</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
<para > <command > systemd-machine-id-setup</command> may be used by
system installer tools to initialize the machine ID stored in
2015-09-23 20:36:21 +03:00
<filename > /etc/machine-id</filename> at install time, with a
provisioned or randomly generated ID. See
2015-02-04 05:14:13 +03:00
<citerefentry > <refentrytitle > machine-id</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry>
for more information about this file.</para>
2015-09-23 20:36:21 +03:00
<para > If the tool is invoked without the <option > --commit</option>
2014-08-03 09:11:12 +04:00
switch, <filename > /etc/machine-id</filename> is initialized with a
2015-09-23 20:36:21 +03:00
valid, new machined ID if it is missing or empty. The new machine
ID will be acquired in the following fashion:</para>
<orderedlist >
<listitem > <para > If a valid D-Bus machine ID is already
configured for the system, the D-Bus machine ID is copied and
used to initialize the machine ID in
<filename > /etc/machine-id</filename> .</para> </listitem>
<listitem > <para > If run inside a KVM virtual machine and a UUID
2016-10-31 15:08:08 +03:00
is configured (via the <option > -uuid</option>
2015-09-23 20:36:21 +03:00
option), this UUID is used to initialize the machine ID. The
caller must ensure that the UUID passed is sufficiently unique
and is different for every booted instance of the
VM.</para> </listitem>
2014-08-03 09:11:37 +04:00
<listitem > <para > Similarly, if run inside a Linux container
2014-08-03 09:11:12 +04:00
environment and a UUID is configured for the container, this is
used to initialize the machine ID. For details, see the
2015-09-23 20:36:21 +03:00
documentation of the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface">Container
Interface</ulink> .</para> </listitem>
2014-08-03 09:11:12 +04:00
<listitem > <para > Otherwise, a new ID is randomly
2015-09-23 20:36:21 +03:00
generated.</para> </listitem>
</orderedlist>
<para > The <option > --commit</option> switch may be used to commit a
transient machined ID to disk, making it persistent. For details,
see below.</para>
2015-02-04 05:14:13 +03:00
<para > Use
<citerefentry > <refentrytitle > systemd-firstboot</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry>
to initialize the machine ID on mounted (but not booted) system
images.</para>
</refsect1>
<refsect1 >
<title > Options</title>
<para > The following options are understood:</para>
<variablelist >
2015-09-23 20:36:21 +03:00
2015-02-04 05:14:13 +03:00
<varlistentry >
<term > <option > --root=<replaceable > root</replaceable> </option> </term>
2015-09-23 20:36:21 +03:00
<listitem > <para > Takes a directory path as argument. All paths
operated will be prefixed with the given alternate
<replaceable > root</replaceable> path, including the path for
<filename > /etc/machine-id</filename> itself.</para> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
2015-09-23 20:36:21 +03:00
<varlistentry >
<term > <option > --commit</option> </term>
<listitem > <para > Commit a transient machine ID to disk. This
command may be used to convert a transient machine ID into a
persistent one. A transient machine ID file is one that was
bind mounted from a memory file system (usually
<literal > tmpfs</literal> ) to
<filename > /etc/machine-id</filename> during the early phase of
the boot process. This may happen because
<filename > /etc</filename> is initially read-only and was
missing a valid machine ID file at that point.</para>
<para > This command will execute no operation if
<filename > /etc/machine-id</filename> is not mounted from a
memory file system, or if <filename > /etc</filename> is
read-only. The command will write the current transient
machine ID to disk and unmount the
<filename > /etc/machine-id</filename> mount point in a
race-free manner to ensure that this file is always valid and
accessible for other processes.</para>
<para > This command is primarily used by the
<citerefentry > <refentrytitle > systemd-machine-id-commit.service</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry>
2014-08-03 09:11:12 +04:00
early boot service.</para> </listitem>
2015-09-23 20:36:21 +03:00
</varlistentry>
2016-07-22 13:21:21 +03:00
<varlistentry >
<term > <option > --print</option> </term>
2016-10-31 15:08:08 +03:00
<listitem > <para > Print the machine ID generated or committed after the operation is complete.</para> </listitem>
2016-07-22 13:21:21 +03:00
</varlistentry>
2015-02-04 05:14:13 +03:00
<xi:include href= "standard-options.xml" xpointer= "help" />
<xi:include href= "standard-options.xml" xpointer= "version" />
</variablelist>
</refsect1>
<refsect1 >
<title > Exit status</title>
<para > On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1 >
<title > See Also</title>
<para >
<citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > machine-id</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> ,
2015-09-23 20:36:21 +03:00
<citerefentry > <refentrytitle > systemd-machine-id-commit.service</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> ,
2015-03-14 05:24:30 +03:00
<citerefentry project= 'dbus' > <refentrytitle > dbus-uuidgen</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> ,
2015-02-04 05:14:13 +03:00
<citerefentry > <refentrytitle > systemd-firstboot</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry>
</para>
</refsect1>
2012-03-16 01:36:33 +04:00
</refentry>