Mount

/etc/fstab 中的 _netdev 掛載選項如何工作?

  • October 13, 2020

我想知道在使用_netdev選項時將安裝推遲到網路介面啟動後的確切機制(實現)是/etc/fstab什麼?

systemd改變這種行為嗎?

另外,delay_connectsshfs 的選項提供什麼_netdev不提供什麼?

mount 手冊頁

_netdev

文件系統駐留在需要網路訪問的設備上(用於防止系統在系統上啟用網路之前嘗試掛載這些文件系統)。

sshfs 手冊頁

-o delay_connect

延遲連接到伺服器

man systemd.mountsystemd 版本 231 開始:

引用本地和網路文件系統的掛載單元通過它們的文件系統類型規範來區分。在某些情況下,這還不夠(例如基於網路塊設備的掛載,例如 iSCSI),在這種情況下,_netdev可能會添加到單元的掛載選項字元串中,這會強制 systemd 將掛載單元視為網路掛載。

SysV 初始化

/etc/init.d/mountall.shinit 腳本隻掛載本地文件系統:

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.target. systemd-fstab-generator掃描/etc/fstab,生成掛載單元,並根據與上述類似的條件將它們分配給上述目標。

延遲連接

此選項意味著 sshfs 不會在掛載時啟動與遠端伺服器的 SSH 連接,但只會在實際需要它的第一個文件系統操作時這樣做。這會延遲錯誤報告,但在某些情況下可能是一種有用的解決方法,例如,如果您的 init 系統沒有足夠的資訊來正確訂購掛載操作。“網路”正在“啟動”是一個相當鬆散的術語,即使可以添加任意額外的依賴項到掛載單元,如果觸發事件不是啟動事務的一部分(用 systemd 的說法),這也無濟於事。

引用自:https://unix.stackexchange.com/questions/169697