MACHINE-ID(5)

NAME
machine-id - 本机"machine ID"配置文件

SYNOPSIS

/etc/machine-id

描述

/etc/machine-id 文件包含一个 在安装操作系统时生成的、专属于本系统的、独一无二的"machine ID"。 "machine ID"是一个32字符长度的十六进制小写字母字符串， 并以换行符结尾， 其本质是一个128位二进制整数的16进制表示。

"machine ID"通常在系统安装时从一个随机数源生成， 并且之后无论经过多少次开关机，也一直保持不变。 另一方面，对于无状态系统，如果此文件为空， 将在系统启动的早期自动随机生成一个。

"machine ID"一旦生成应该永远保持不变， 即使系统的硬件发生了变化也不应该修改它。

这里的"machine ID"与"D-Bus machine ID" 遵守相同的格式与逻辑。

无论主机的网络配置如何变化， 应用程序始终可以使用"machine ID" 在全球范围内精确的识别一台主机。基于上述特性， "machine ID" 机制可用于取代 POSIX 的 gethostid(3) 系统调用功能。

操作系统的安装程序可以在安装时使用 systemd-machine-id-setup(1) 工具来初始化"machine ID"。 可以使用 systemd-firstboot(1) 初始化已挂载(但未启动)的系统镜像的"machine ID"。

还可以通过 systemd.machine_id= 内核引导选项 或者 systemd 的 --machine-id= 命令行选项 来设置"machine ID"。这种方式经常用于网络启动的场景中。 注意，不可将"machine ID"设为全零值。

与 OSF UUID 的关系

"machine ID"符合 RFC 4122[1] 规范(OSF v4 UUID)， 同时也符合 Microsoft GUID 规范。

历史

/etc/machine-id 文件的格式源自D-Bus的 /var/lib/dbus/machine-id 文件。 实际上，/var/lib/dbus/machine-id 很可能就是指向 /etc/machine-id 的一个软连接。

参见

systemd(1), systemd-machine-id-setup(1), gethostid(3), hostname(5), machine-info(5), os-release(5), sd-id128(3), sd_id128_get_machine(3), systemd-firstboot(1)

NOTES

1.  RFC 4122
    https://tools.ietf.org/html/rfc4122