本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
systemd-fstab-generator — 用于 /etc/fstab 文件的单元生成器
/usr/lib/systemd/system-generators/systemd-fstab-generator
systemd-fstab-generator
是一个将
/etc/fstab
文件(参见
fstab(5)
手册)转化为单元文件的工具。
用于在系统启动的早期以及 systemd 重新加载配置文件的时候,
按需实例化 mount 与 swap 单元。
/etc/fstab
文件中的 passno
字段(最后一个字段,表示文件系统的检查顺序)
将被视为简单的布尔值(也就是丢弃顺序信息)。
不过,根文件系统的检查将始终优先于其他文件系统。
参见
systemd.mount(5)
与
systemd.swap(5)
手册以了解可在 /etc/fstab
中使用的特殊挂载选项。
虽然传统习惯允许在
/etc/fstab
中使用软连接,
但是因为 mount 单元拒绝使用软连接作为挂载目标(挂载点),
所以为了尽可能兼容传统习惯,此单元生成器在处理
/etc/fstab
文件时,将会尽最大努力将软连接追踪到底。
注意,即使此单元生成器所能够实际追踪到的最终挂载点并非是真正的最终挂载点,
此单元生成器也会强制将其用作最终的实际挂载点。
systemd-fstab-generator
遵守
systemd.generator(7) 规范。
systemd-fstab-generator
能够识别下列内核引导选项:
fstab=
, rd.fstab=
¶是否使用 /etc/fstab
文件。
默认值为 "yes
" 。若设为 "no
"
则表示忽略该文件,也就是完全不根据
/etc/fstab
文件生成对应的单元。
rd.fstab=
仅适用于初始内存盘(initrd),
而 fstab=
同时适用于主文件系统
与初始内存盘(initrd)。
root=
¶指定根文件系统设备。 在使用initrd的系统上, 该参数由initrd处理。
rootfstype=
¶指定根文件系统类型。 在使用initrd的系统上, 该参数由initrd处理。
rootflags=
¶设置根文件系统挂载选项。 在使用initrd的系统上, 该参数由initrd处理。
mount.usr=
¶指定 /usr
文件系统设备。
如果设置了
mount.usrfstype=
或
mount.usrflags=
之一,那么
mount.usr=
的默认值将是
root=
的值。
否则,默认值将从根文件系统上的
/etc/fstab
文件中的 /usr
条目中提取。
mount.usr=
仅在initrd环境中才有意义。
mount.usrfstype=
¶指定 /usr
文件系统类型。
如果设置了
mount.usr=
或
mount.usrflags=
之一,那么
mount.usrfstype=
的默认值将是
rootfstype=
的值。
否则,默认值将从根文件系统上的
/etc/fstab
文件中的 /usr
条目中提取。
mount.usrfstype=
仅在
initrd 环境中才有意义。
mount.usrflags=
¶指定 /usr
文件系统挂载选项。
如果设置了 mount.usr=
或
mount.usrfstype=
之一,那么
mount.usrflags=
的默认值将是
rootflags=
的值。
否则,默认值将从根文件系统上的
/etc/fstab
文件中的 /usr
条目中提取。
mount.usrflags=
仅在
initrd 环境中才有意义。
systemd.volatile=
¶控制是否以"易失"模式启动系统。
可设为 "yes" 或 "no" 或 "state
" 。
默认值 "no" 表示以常规模式启动。
此单元生成器将严格按照 /etc/fstab
文件的指示生成单元文件。
设为 "yes" 表示以完全无状态模式(完全隐私模式)启动。此单元生成器将确保把
systemd-volatile-root.service(8)
服务作为 initrd 的一部分运行,以确保在进入磁盘文件系统之前先修改文件系统挂载表(相当于修改 /etc/fstab
文件):
将内存("tmpfs
")用作根文件系统、仅以只读模式挂载磁盘上的 /usr
目录、
忽略用户在 /etc/fstab
文件中配置的所有其他挂载点。
这样,将完全使用发行商提供的默认系统(位于 initrd 内),并且不会在本地磁盘上存储任何数据。
因为所有对 /etc
与 /var
以及根文件系统的更改,
都仅存在与内存中,也就是将在关机或重启之后丢失。
设为 "state
" 表示以常规方式挂载根文件系统,
同时仅将 /var
挂载到内存中("tmpfs
")。
这样,因为 "/etc
" 来自于磁盘,所以系统将以用户自定义的配置启动(运行中对配置的变更也能持久保存)。
但是又因为 "/var
" 依然位于内存中,
所以所有系统运行过程中的状态都将在关机或重启之后丢失。
注意,无论以哪种"易失"模式启动,根文件系统、 /etc
目录、 /var
目录、
以及任何存放在根文件系统上的资源都不会被物理删除。
因此,可以安全的以"易失"模式启动系统,而不必担心丢失任何数据。
注意,"易失"模式仅能够在符合下列条件的操作系统上正常工作:
(1)能够在仅挂载 /usr
目录的情况下启动;(2)能够自动填充 /etc
目录;
(2)能够自动填充 /var
目录(仅适用于 "systemd.volatile=yes
")。