'\" t .\" Title: machine-id .\" Author: Lennart Poettering .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 10/07/2013 .\" Manual: /etc/machine-id .\" Source: systemd .\" Language: English .\" .TH "MACHINE\-ID" "5" "10/07/2013" "systemd" "/etc/machine-id" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" machine-id \- local machine ID configuration file .SH "SYNOPSIS" .PP /etc/machine\-id .SH "DESCRIPTION" .PP The /etc/machine\-id file 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\&.) .PP 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 if it is found to be empty\&. .PP The machine ID does not change based on user configuration, or when hardware is replaced\&. .PP This machine ID adheres to the same format and logic as the D\-Bus machine ID\&. .PP 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 for the \fBgethostid\fR(3) call POSIX specifies\&. .PP The \fBsystemd-machine-id-setup\fR(1) tool may be used by installer tools to initialize the machine ID at install time\&. .SH "RELATION TO OSF UUIDS" .PP Note that the machine ID historically is not an OSF UUID as defined by \m[blue]\fBRFC 4122\fR\m[]\&\s-2\u[1]\d\s+2, nor a Microsoft GUID\&. Starting with systemd v30 newly generated machine IDs however do qualify as v4 UUIDs\&. .PP 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: .sp .if n \{\ .RS 4 .\} .nf /* 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; .fi .if n \{\ .RE .\} .PP (This code is inspired by generate_random_uuid() of drivers/char/random\&.c from the kernel sources\&.) .SH "HISTORY" .PP 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 \fI/etc/machine\-id\fR\&. .SH "SEE ALSO" .PP \fBsystemd\fR(1), \fBsystemd-machine-id-setup\fR(1), \fBgethostid\fR(3), \fBhostname\fR(5), \fBmachine-info\fR(5), \fBos-release\fR(5) .SH "AUTHOR" .PP \fBLennart Poettering\fR <\&lennart@poettering\&.net\&> .RS 4 Developer .RE .SH "NOTES" .IP " 1." 4 RFC 4122 .RS 4 \%http://tools.ietf.org/html/rfc4122 .RE