是的,现在.
这在systemd手册中有所介绍. / etc / machine-id中的值最初不是有效的UUID,因为systemd人员最初没有编写用于生成版本4 UUID的正确代码.但此后已经修复.
如果将许可证绑定到计算机ID,请注意它可以更改…
> …如果有人删除/ etc / machine-id并在下次bootstrap中重新创建;
> …如果/ etc(通常在实际的根卷上)没有在bootstrap上挂载读写,/ etc / machine-id无效或丢失,并且/ etc以后不能重新挂载读写允许/ etc /要写的机器ID;
> …如果在操作系统未运行或某人使用systemd-firstboot等工具更改光盘卷上的machine-id时,包含/ etc的光盘卷被另一个不同的光盘卷替换;
> …如果系统是系统人称之为“无状态”的系统,并且(实际上它比这稍微复杂一点)/ etc / machine-id会在每个引导程序中重新创建;
> …在机器上的容器内.
但它故意不改变……
> …如果更换了主板,处理器或NIC;
> …如果更改了NIC的MAC地址;
> …如果根卷(更具体地说,包含/ etc的卷)用dd或pax之类的东西成像到替换光盘上;
> …在系统运行期间(除非系统管理员故意乱用它);
> …如果/ etc / machine-id有效,非空,并且第一次可写,则从一个引导程序到下一个引导程序.
便携性说明
>不要使用/ var / lib / dbus / machine-id优先于/ etc / machine-id.
>遗憾的是,生成/ etc / machine-id的原始Desktop Bus文件不在可跨操作系统移植的固定位置.在某些系统上,可以在/ var / lib / dbus / machine-id找到它;在/ var / db / dbus / machine-id上的其他人.
>在2013年左右的某个时候,D-Bus被修改为使用/ etc / machine-id(如果存在),取代/ var中的文件,无论它是什么.
> 2015年,Debian / Ubuntu人员made the D-Bus file in /var default to being a symbolic link to /etc/machine-id,无论如何.
> / etc / machine-id不仅限于在挂载/ var之后或启动网络接口之后在引导过程中可用.
>虽然vanilla FreeBSD / TrueOS,NetBSD和OpenBSD没有提供/ etc / machine-id,但是nosh工具集提供了可移植的工具(也可以在Linux上使用)来创建它,它也知道BSD特定的地方. BSD期望这样的ID并保持一致性.
进一步阅读
> Lennart Poettering等人.machine-id.systemd手册页. Freedesktop.org.
> Jonathan de Boyne Pollard(2013年). setup-machine-id. nosh指南. JdeBP的软件.
> Jonathan de Boyne Pollard(2017年). /etc/machine-id.地名录. nosh指南. JdeBP的软件.
> How dbus calculates machine id?
> Why is my systemd journal not persistent across reboots?
> It is OK to change /etc/machine-id?