]>
Commit | Line | Data |
---|---|---|
d7ccca2e LP |
1 | <?xml version='1.0'?> <!--*-nxml-*--> |
2 | <?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?> | |
3 | <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | |
4 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | |
5 | ||
6 | <!-- | |
7 | This file is part of systemd. | |
8 | ||
9 | Copyright 2010 Lennart Poettering | |
10 | ||
11 | systemd is free software; you can redistribute it and/or modify it | |
5430f7f2 LP |
12 | under the terms of the GNU Lesser General Public License as published by |
13 | the Free Software Foundation; either version 2.1 of the License, or | |
d7ccca2e LP |
14 | (at your option) any later version. |
15 | ||
16 | systemd is distributed in the hope that it will be useful, but | |
17 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
5430f7f2 | 19 | Lesser General Public License for more details. |
d7ccca2e | 20 | |
5430f7f2 | 21 | You should have received a copy of the GNU Lesser General Public License |
d7ccca2e LP |
22 | along with systemd; If not, see <http://www.gnu.org/licenses/>. |
23 | --> | |
24 | ||
25 | <refentry id="machine-id"> | |
26 | <refentryinfo> | |
27 | <title>/etc/machine-id</title> | |
28 | <productname>systemd</productname> | |
29 | ||
30 | <authorgroup> | |
31 | <author> | |
32 | <contrib>Developer</contrib> | |
33 | <firstname>Lennart</firstname> | |
34 | <surname>Poettering</surname> | |
35 | <email>lennart@poettering.net</email> | |
36 | </author> | |
37 | </authorgroup> | |
38 | </refentryinfo> | |
39 | ||
40 | <refmeta> | |
41 | <refentrytitle>machine-id</refentrytitle> | |
42 | <manvolnum>5</manvolnum> | |
43 | </refmeta> | |
44 | ||
45 | <refnamediv> | |
46 | <refname>machine-id</refname> | |
47 | <refpurpose>local machine ID configuration file</refpurpose> | |
48 | </refnamediv> | |
49 | ||
50 | <refsynopsisdiv> | |
51 | <para><filename>/etc/machine-id</filename></para> | |
52 | </refsynopsisdiv> | |
53 | ||
54 | <refsect1> | |
55 | <title>Description</title> | |
56 | ||
57 | <para>The <filename>/etc/machine-id</filename> file | |
8d41a963 LP |
58 | contains the unique machine id of the local system |
59 | that is set during installation. The machine ID is a | |
60 | single newline-terminated, hexadecimal, lowercase 32 | |
61 | character machine ID string. (When decoded from | |
62 | hexadecimal this corresponds with a 16 byte/128 bit | |
63 | string.)</para> | |
d7ccca2e LP |
64 | |
65 | <para>The machine ID is usually generated from a | |
66 | random source during system installation and stays | |
67 | constant for all subsequent boots. Optionally, for | |
68 | stateless systems it is generated during runtime at | |
811ad2b3 | 69 | boot if it is found to be empty.</para> |
d7ccca2e LP |
70 | |
71 | <para>The machine ID does not change based on user | |
72 | configuration, or when hardware is replaced.</para> | |
73 | ||
8d41a963 | 74 | <para>This machine ID adheres to the same format and |
d7ccca2e LP |
75 | logic as the D-Bus machine ID.</para> |
76 | ||
77 | <para>Programs may use this ID to identify the host | |
78 | with a globally unique ID in the network, that does | |
79 | not change even if the local network configuration | |
80 | changes. Due to this and its greater length it is | |
7640a5de | 81 | a more useful replacement for the |
d7ccca2e LP |
82 | <citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry> |
83 | call POSIX specifies.</para> | |
44f44a29 LP |
84 | |
85 | <para>The | |
86 | <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry> | |
87 | tool may be used by installer tools to initialize the | |
88 | machine ID at install time.</para> | |
d7ccca2e LP |
89 | </refsect1> |
90 | ||
8d41a963 LP |
91 | <refsect1> |
92 | <title>Relation to OSF UUIDs</title> | |
93 | ||
94 | <para>Note that the machine ID historically is not an | |
95 | OSF UUID as defined by <ulink | |
96 | url="http://tools.ietf.org/html/rfc4122">RFC | |
97 | 4122</ulink>, nor a Microsoft GUID. Starting with | |
98 | systemd v30 newly generated machine IDs however do | |
99 | qualify as v4 UUIDs.</para> | |
100 | ||
101 | <para>In order to maintain compatibility with existing | |
102 | installations, an application requiring a UUID should | |
103 | decode the machine ID, and then apply the following | |
104 | operations to turn it into a valid OSF v4 UUID. With | |
105 | <literal>id</literal> being an unsigned character | |
106 | array:</para> | |
107 | ||
108 | <programlisting>/* Set UUID version to 4 --- truly random generation */ | |
109 | id[6] = (id[6] & 0x0F) | 0x40; | |
110 | /* Set the UUID variant to DCE */ | |
111 | id[8] = (id[8] & 0x3F) | 0x80;</programlisting> | |
112 | ||
113 | <para>(This code is inspired by | |
114 | <literal>generate_random_uuid()</literal> of | |
115 | <filename>drivers/char/random.c</filename> from the | |
116 | kernel sources.)</para> | |
117 | ||
118 | </refsect1> | |
119 | ||
d7ccca2e LP |
120 | <refsect1> |
121 | <title>History</title> | |
122 | ||
123 | <para>The simple configuration file format of | |
124 | <filename>/etc/machine-id</filename> originates in the | |
125 | <filename>/var/lib/dbus/machine-id</filename> file | |
126 | introduced by D-Bus. In fact this latter file might be a | |
8d41a963 | 127 | symlink to |
d7ccca2e LP |
128 | <varname>/etc/machine-id</varname>.</para> |
129 | </refsect1> | |
130 | ||
131 | <refsect1> | |
132 | <title>See Also</title> | |
133 | <para> | |
134 | <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, | |
44f44a29 | 135 | <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, |
d7ccca2e | 136 | <citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry>, |
7640a5de LP |
137 | <citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
138 | <citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
139 | <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> | |
d7ccca2e LP |
140 | </para> |
141 | </refsect1> | |
142 | ||
143 | </refentry> |