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=98c09436ba41a7387519558c8d80266698b9e431;hb=d60ef5265063914ca1502e56f77fd7d70e975da3;hpb=7640a5de1b3ffe6547200ad204d14e4f067caf4f diff --git a/man/machine-id.xml b/man/machine-id.xml index 98c09436b..6ca999098 100644 --- a/man/machine-id.xml +++ b/man/machine-id.xml @@ -55,21 +55,23 @@ 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 @@ -81,6 +83,35 @@ 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.