X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fmachine-id.xml;h=50295a8cd7f1fb58b306556e7d89e59673134f75;hp=fefeb66fd683ef92ba25f85d8a0b86545b14918e;hb=a81df0ad90f0dea0eb272c02efe18934fa66fdf2;hpb=d7ccca2e3f86feb81a48e243d8bad78814659a74 diff --git a/man/machine-id.xml b/man/machine-id.xml index fefeb66fd..50295a8cd 100644 --- a/man/machine-id.xml +++ b/man/machine-id.xml @@ -9,16 +9,16 @@ 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 . --> @@ -55,30 +55,66 @@ 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, lowercase 32 + character 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. + boot if it is found to be empty. The machine ID does not change based on user 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 not change even if the local network configuration changes. Due to this and its greater length it is - a more useful replacement than the + a more useful replacement for the gethostid3 call POSIX specifies. + + The + systemd-machine-id-setup1 + tool may be used by installer tools to initialize the + machine ID at install time. + + + + Relation to OSF UUIDs + + Note that the machine ID historically is not an + OSF UUID as defined by RFC + 4122, nor a Microsoft GUID. Starting with + systemd v30 newly generated machine IDs however 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 + kernel sources.) + @@ -88,7 +124,7 @@ /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 + symlink to /etc/machine-id. @@ -96,8 +132,13 @@ See Also systemd1, + systemd-machine-id-setup1, gethostid3, - hostname5 + hostname5, + machine-info5, + os-release5, + sd-id1283, + sd_id128_get_machine3