'\" t .TH "MACHINE\-ID" "5" "" "systemd 232" "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, 32\-character, lowercase 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 early 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, which 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 that 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\&. Use \fBsystemd-firstboot\fR(1) to initialize it on mounted (but not booted) system images\&. .PP The machine\-id may also be set, for example when network booting, by setting the \fIsystemd\&.machine_id=\fR kernel command line parameter or passing the option \fB\-\-machine\-id=\fR to systemd\&. A machine\-id may not be set to all zeros\&. .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; however, starting with systemd v30, newly generated machine IDs 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 Linux 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 /etc/machine\-id\&. .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), \fBsd-id128\fR(3), \fBsd_id128_get_machine\fR(3), \fBsystemd-firstboot\fR(1) .SH "NOTES" .IP " 1." 4 RFC 4122 .RS 4 \%https://tools.ietf.org/html/rfc4122 .RE