尽管systemd-machine-id-setup
并且systemd-firstboot
非常适合使用systemd的系统/etc/machine-id
,但尽管有标签,它也不是systemd文件。它也用于不使用systemd的系统上。因此,您可以使用以下dbus-uuidgen
工具:
rm -f /etc/machine-id
然后
dbus-uuidgen --ensure=/etc/machine-id
正如Stephen Kitt所提到的,Debian系统可能同时具有/etc/machine-id
和/var/lib/dbus/machine-id
文件。如果两者都作为常规文件存在,则它们的内容应该匹配,因此,也请删除/var/lib/dbus/machine-id
:
rm /var/lib/dbus/machine-id
并重新创建它:
dbus-uuidgen --ensure
最后一个命令隐式地/var/lib/dbus/machine-id
用作文件名,并将从新生成的中复制机器ID /etc/machine-id
。
在dbus-uuidgen
调用可能会或可能不会已经正常引导序列的一部分。如果它是引导顺序的一部分,那么删除文件并重新引导就足够了。如果需要运行dbus-uuidgen
自己,请注意手册页中的警告:
如果尝试更改正在运行的系统上的现有机器ID,则可能会导致发生不良情况。不要尝试更改此文件。另外,不要在两个不同的系统上使它相同。只要有两个不同的内核在运行,它就必须有所不同。
因此,执行此操作后,一定不要在不重新引导的情况下继续使用系统。作为额外的预防措施,您可以先重新启动进入救援模式(或者按照您的建议,从活动的USB闪存盘启动),但是根据我的经验,这不是必需的。可能会发生不好的事情,但是无论如何都会通过重新启动来修复发生的不好的事情。