X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fmachine-id.xml;h=6ca9990988af48df3921448880fa0e9247ff3871;hp=fefeb66fd683ef92ba25f85d8a0b86545b14918e;hb=d60ef5265063914ca1502e56f77fd7d70e975da3;hpb=d7ccca2e3f86feb81a48e243d8bad78814659a74 diff --git a/man/machine-id.xml b/man/machine-id.xml index fefeb66fd..6ca999098 100644 --- a/man/machine-id.xml +++ b/man/machine-id.xml @@ -55,32 +55,63 @@ 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. + + 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.) + + + History @@ -88,7 +119,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. @@ -97,7 +128,9 @@ systemd1, gethostid3, - hostname5 + hostname5, + machine-info5, + os-release5