/etc/fstab 中的 _netdev 挂载选项如何工作?

Pio*_*ost 41 automounting mount fstab sshfs systemd

我想知道什么是用于安装推迟到以后的网络接口是向上的确切机制(实现)当人们使用_netdev的选项/etc/fstab
systemd改变这种行为吗?
另外,delay_connectsshfs 的选项提供什么_netdev不提供什么?

mount 手册页

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

sshfs 手册页

-o delay_connect
延迟连接到服务器

Fer*_*ner 33

系统V初始化

/etc/init.d/mountall.sh初始化脚本只安装本地文件系统:

mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev
Run Code Online (Sandbox Code Playgroud)

其他文件系统由单独的 init 脚本挂载,例如/etc/init.d/mountnfs.sh,它们声明(通过 LSB 标头)它们对$network. 因此,这些在网络启动后被安排mountall.sh得更晚,而可以更早地运行。

系统

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

延迟连接

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

  • 奖金问题;这有记录在某处吗? (2认同)
  • *默认情况下,mount(8) 中会忽略 _netdev 选项。这些选项仅由 initscripts 使用。* – https://bugzilla.redhat.com/show_bug.cgi?id=607309#c4 (2认同)

Pio*_*ost 33

man systemd.mountsystemd 231 版本开始:

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