本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
systemd-machine-id-setup — 初始化 /etc/machine-id 文件
systemd-machine-id-setup
systemd-machine-id-setup
可被操作系统安装程序用来初始化
/etc/machine-id
中的"machine ID"值,
可以设为一个指定值,也可以设为一个随机生成的值。详见
machine-id(5)
手册。
如果没有明确使用 --commit
选项并且 /etc/machine-id
不存在或其中的值不合格,
那么将初始化一个新的"machined ID"。
此新"machine ID"将依次使用下列方法获得:
如果已经存在一个有效的 D-Bus "machine ID",
那么就使用此 D-Bus "machine ID"
来初始化
/etc/machine-id
文件。
如果运行在
已经配置了UUID(通过 -uuid
选项)的KVM虚拟机中,
那么就使用此UUID来初始化
/etc/machine-id 文件。
KVM虚拟机的创建者
必须确保UUID的唯一性。
如果运行在 已经配置了UUID的Linux容器中, 那么就使用此UUID来初始化 /etc/machine-id 文件。 详见 Container Interface 文档。
如果上述方法都不可用, 那么随机生成一个新的"machine ID"来初始化 /etc/machine-id 文件。
可以使用 --commit
选项将新生成的临时"machine ID"写入到磁盘中永久保存。
详见下文。
可以使用 systemd-firstboot(1) 初始化 已挂载(但未启动)的系统镜像的"machine ID"。
能够识别的命令行选项如下:
--root=root
¶指定一个"根目录",
包括配置文件在内的所有路径都将加上
root
前缀,包括
/etc/machine-id
自身。
--commit
¶将生成的临时"machine ID"
写入到磁盘中永久保存。
所谓"临时"的意思是指在
系统启动的早期绑定挂载的
"tmpfs
" 文件系统中的
/etc/machine-id
文件。
这可能是由于在系统启动的早期,
/etc
依然处于只读状态
并且其中并不包含合格的 /etc/machine-id 文件。
如果
/etc/machine-id
未被绑定挂载到 "tmpfs
" 文件系统,
或者 /etc
处于只读状态,
那么此选项将不执行任何操作。
否则,此命令将会把临时生成的"machine ID"写入到磁盘中,然后卸载
/etc/machine-id
所在的文件系统,
以确保"machine ID"
确实被永久保存。
此选项主要被系统启动早期的 systemd-machine-id-commit.service(8) 使用。
--print
¶操作完成之后打印出"machine ID"的值
-h
, --help
¶--version
¶