X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fmachine-id.xml;h=725370d32dc4e523af18aad4c770754181bec20c;hp=fefeb66fd683ef92ba25f85d8a0b86545b14918e;hb=edf2573743b25273bee020230a60f1a054b8ec60;hpb=d7ccca2e3f86feb81a48e243d8bad78814659a74 diff --git a/man/machine-id.xml b/man/machine-id.xml index fefeb66fd..725370d32 100644 --- a/man/machine-id.xml +++ b/man/machine-id.xml @@ -9,22 +9,22 @@ Copyright 2010 Lennart Poettering systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + 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 (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 - General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with systemd; If not, see . --> - /etc/machine-id + machine-id systemd @@ -44,7 +44,7 @@ machine-id - local machine ID configuration file + Local machine ID configuration file @@ -55,30 +55,69 @@ Description The /etc/machine-id file - configures the unique machine id of the local system - that is set during installation. It should contain a - single newline-terminated, hexadecimal, lowercase 16 - character machine ID string. + contains the unique machine ID of the local system + that is set during installation. The machine ID is a + single newline-terminated, hexadecimal, 32-character, + lowercase machine ID string. When decoded from + hexadecimal, this corresponds with a 16-byte/128-bit + string. The machine ID is usually generated from a random source during system installation and stays constant for all subsequent boots. Optionally, for - stateless systems it is generated during runtime at - boot. + stateless systems, it is generated during runtime at + boot if it is found to be empty. The machine ID does not change based on user - configuration, or when hardware is replaced. + configuration or when hardware is replaced. - This machine id follows the same format and + This machine ID adheres to the same format and logic as the D-Bus machine ID. Programs may use this ID to identify the host - with a globally unique ID in the network, that does + with a globally unique ID in the network, which does not change even if the local network configuration - changes. Due to this and its greater length it is - a more useful replacement than the + changes. Due to this and its greater length, it is + a more useful replacement for the gethostid3 - call POSIX specifies. + call that POSIX specifies. + + The + systemd-machine-id-setup1 + tool may be used by installer tools to initialize the + machine ID at install time. Use + systemd-firstboot1 + to initialize it on mounted (but not booted) system + images. + + + + Relation to OSF UUIDs + + Note that the machine ID historically is not an + OSF UUID as defined by RFC + 4122, nor a Microsoft GUID; however, starting with + systemd v30, newly generated machine IDs do + qualify as v4 UUIDs. + + In order to maintain compatibility with existing + installations, an application requiring a UUID should + decode the machine ID, and then apply the following + operations to turn it into a valid OSF v4 UUID. With + id being an unsigned character + array: + + /* Set UUID version to 4 --- truly random generation */ +id[6] = (id[6] & 0x0F) | 0x40; +/* Set the UUID variant to DCE */ +id[8] = (id[8] & 0x3F) | 0x80; + + (This code is inspired by + generate_random_uuid() of + drivers/char/random.c from the + Linux kernel sources.) + @@ -87,8 +126,8 @@ The simple configuration file format of /etc/machine-id originates in the /var/lib/dbus/machine-id file - introduced by D-Bus. In fact this latter file might be a - symlink to the + introduced by D-Bus. In fact, this latter file might be a + symlink to /etc/machine-id. @@ -96,8 +135,14 @@ See Also systemd1, + systemd-machine-id-setup1, gethostid3, - hostname5 + hostname5, + machine-info5, + os-release5, + sd-id1283, + sd_id128_get_machine3, + systemd-firstboot1