系统V初始化

系统V初始化

我想知道当使用_netdev中的选项时,用于推迟安装直到网络接口启动之后的确切机制(实现)是什么/etc/fstab
systemd改变这种行为吗?
另外,delay_connectsshfs 选项提供了什么_netdev而没有提供什么?

mount 手册页:

_netdev
文件系统驻留在需要网络访问的设备上(用于防止系统在系统上启用网络之前尝试挂载这些文件系统)。

sshfs 手册页:

-o delay_connect
延迟连接到服务器

答案1

来自man systemd.mountsystemd 231 版本:

引用本地和网络文件系统的安装单元通过其文件系统类型规范来区分。在某些情况下,这还不够(例如基于网络块设备的安装,例如 iSCSI),在这种情况下_netdev可以添加到该单元的挂载选项字符串中,这会强制 systemd 将挂载单元视为网络挂载。

答案2

系统V初始化

init/etc/init.d/mountall.sh脚本仅挂载本地文件系统:

mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev

其他文件系统由单独的初始化脚本安装,例如/etc/init.d/mountnfs.sh,它声明(通过 LSB 标头)它们对$network.因此,这些任务会在网络启动后稍后安排,但mountall.sh可以更早地运行。

系统

本地安装单元由 拉入local-fs.target,远程安装单元由拉入remote-fs.targetsystemd-fstab-generator扫描/etc/fstab,生成安装单元,并根据与上述类似的条件将它们分配给上述目标。

延迟连接

此选项意味着 sshfs 不会在挂载时启动与远程服务器的 SSH 连接,而只会在实际需要它的第一个文件系统操作时才会这样做。这会延迟错误报告,但在某些情况下可能是一个有用的解决方法,例如,如果您的初始化系统没有足够的信息来正确排序安装操作。 “网络”“起来”是一个相当松散的术语,即使可以添加任意额外的依赖如果触发事件不是启动事务的一部分(用 systemd 的说法),则挂载没有帮助的单元。

答案3

Upstart/Udev

对于upstart和/或udev基于系统,这略有不同。

它似乎udev仍会尝试挂载 NFS 文件系统,并且netfs是失败时的安全网。

如果我错了,请纠正我。不管怎样,这个答案只与一些最近的遗留系统(Ubuntu 14.04 LTS,RHEL6)相关。

相关内容