machine-id 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 . 指令索引systemd-231

名称

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

大纲

/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 规范(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)