/ etc / fstabの_netdevマウントオプションはどのように機能しますか?


24

_netdevオプションを使用する場合、ネットワークインターフェイスが起動するまでマウントを延期するために使用される正確なメカニズム(実装)は/etc/fstab何ですか?この動作
systemd変わりますか?
また、delay_connectsshfsのオプションは何を提供します_netdevか?

mount manページから:

_netdev
ファイルシステムは、ネットワークアクセスが必要なデバイスに存在します(システムでネットワークが有効になるまで、システムがこれらのファイルシステムをマウントしようとするのを防ぐために使用されます)。

sshfs manページから:

-o delay_connect
サーバーへの接続を遅らせる

回答:


25

SysV Init

/etc/init.d/mountall.shinitスクリプトは、ローカルファイルシステムをマウントします。

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

他のファイルシステムは、例えば、のような別のinitスクリプトによって実装されている/etc/init.d/mountnfs.sh上に(LSBヘッダーを介して)、それらの依存関係を宣言し、$network。したがって、これらはネットワークが立ち上がった後、mountall.shより早く実行することができますが、後でスケジュールされます。

systemd

ローカルマウントユニットはによってlocal-fs.target、リモートマウントユニットはによって引き込まれremote-fs.targetます。systemd-fstab-generatorscansは/etc/fstab、マウントユニットを生成し、上記と同様の条件に基づいてこれらを上記のターゲットに割り当てます。

delay_connect

このオプションは、sshfsがマウント時にリモートサーバーへのSSH接続を開始せず、実際にそれを必要とする最初のファイルシステム操作でのみ開始することを意味します。これはエラーの報告を遅らせますが、たとえばinitシステムがマウント操作を正しく注文するのに十分な情報を持っていない場合など、いくつかの場合に有用な回避策かもしれません。「ネットワーク」が「アップ」しているのはかなり緩やかな用語であり、トリガーイベントがブートアップトランザクションの一部でない場合(システム用語では)役に立たないマウントユニットに任意の追加の依存関係を追加できます。


だから、あなたは_netdevそれがマウントを実行するプロセスに渡される引数であることを意味しているのではなく(このようなマウントのタイプに固有ですext4/btrfs/cifs/fuse)、このフラグに基づいて他のプロセス/スクリプトによって読み取られることを意味しています起動プロセス中にこれらのマウントを実行する必要があります。はい?もしそうなら、これが他の正式な議論と区別するために、この議論がアンダースコアで始まる理由だと思う。
ピョートルドブロゴスト

はい。_netdevオプションをmountコマンドに渡すと、オプションは表示され/proc/mountsますが、他の効果はありません。
フェレンクワーグナー

ボーナス質問; これはどこかに文書化されていますか?
ピョートルドブロゴスト

1
マウントマニュアルが含まれています:「ファイルシステムに依存しないMOUNT OPTIONS -彼らはで表示されたときにこれらのオプションの一部のみが便利です/etc/fstab。ファイル」さて、_netdev(多少後で説明します)これは良い例です。
フェレンクワーグナー

2
_netdevオプションは、デフォルトではmount(8)で無視されます。オプションは、initscriptsのみによって使用されます。bugzilla.redhat.com/show_bug.cgi?id=607309#c4
ピオトルドブロゴスト

18

man systemd.mountsystemdのバージョン231 から:

ローカルおよびネットワークファイルシステムを参照するマウントユニットは、ファイルシステムタイプの仕様によって区別されます。場合によってはこれで十分ではありません(たとえば、iSCSIなどのネットワークブロックデバイスベースのマウント)。その場合、_netdevをユニットのマウントオプション文字列に追加し、systemdがマウントユニットをネットワークマウントと見なすようにします。


すごい!この回答がまだ投票されていない理由はわかりません。
バレンティンバジラミ

1

Upstart/Udev

以下のためupstartおよび/またはudevベースのシステム、これは少し異なります。

そうですudev、まだNFSファイルシステムをマウントしようとすると、netfsそれが失敗したときのためのセーフティネットです。

私が間違っている場合は修正してください。いずれにしても、この回答は最近の一部のレガシーシステム(Ubuntu 14.04 LTS、RHEL6)にのみ関連しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.