Linuxのバインドマウントがプライベートか共有かを確認するにはどうすればよいですか?


8

mountコマンドを使用すると、バインドマウントを共有、スレーブ、共有+スレーブ、プライベート、またはバインド不可にすることができますが、特定のマウントポイントについて、バインドマウントをルートとするサブツリーのタイプ(共有、スレーブ、プライベート、共有+スレーブ、またはバインド不可)。バインドマウントがスレーブかプライベートかを確認するにはどうすればよいですか?

回答:


8

答えはmount(8)マニュアルページにもあります:

現在の伝播フラグを確認するには、findmnt -o TARGET、PROPAGATIONを使用します。

例:

$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   shared

$ sudo mount -o bind /opt /mnt
$ sudo mount --make-slave /opt
$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   private,slave

$ sudo umount /mnt
$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   private

findmnt他のオプションについては、マニュアルページを確認してください。

参考までに、これらの例では次のものを使用しています。

$ findmnt --version
findmnt from util-linux 2.27.1

どのバージョンfindmntを使用していますか?findmntUbuntu 14.04 を使用していますが、「PROPAGATION」オプションがないようです。
anaken78

7

dawudの答えの代わりに、次のようにカーネルに直接尋ねることもできます:

# cat /proc/1/mountinfo
14 19 0:14 / /sys rw,nosuid,nodev,noexec,relatime shared:7 - sysfs sysfs rw
15 19 0:3 / /proc rw,nosuid,nodev,noexec,relatime shared:12 - proc proc rw
[...]

7番目のフィールドから、/sysファイルシステムが共有されていることがわかります(と同様/proc)。

また、ピアグループ7にあります(同じピアグループ内のマウントは、イベントを相互に伝達します)。

内の数字は/proc/1/mountinfoプロセスのPIDです。これは、プロセスが異なるマウント名前空間にあり、異なる結果を「見る」ことができるためです。コンテナで作業している場合など、別のPIDを使用することもできます。それ以外の場合は、1単純明快です。

共有マウントは、Linuxカーネルバージョン2.6.15以降で使用できます


-3

同じデータの2つのビューであり、一方の変更が他方に反映されます

mount --bind / source / destrination

/unix/198590/what-is-a-bind-mount

マウントバインドは、ファイルシステムビューを自分の好みに合わせて並べる方法の1つにすぎません。


1
これは質問の答えにはなりません。質問は、バインドマウントが何であるかを定義するのではなく、特定のバインドマウントのモード(共有、スレーブ、プライベートなど)を見つける方法を尋ねます。
Cosmic Ossifrage

提供されたリンクは、上記のどれでもないことを説明しています
Sum1sAdmin

1
@ Rob-d「上記のどれでもない」とはどういう意味ですか?Cosmic Ossifrageが私の質問に指摘したように、バインドマウントの使用方法ではなく、マウントのタイプについてはどうでしょうか。
anaken78

それはあなたがからマウントに結合されているどんなタイプで、そうでない場合はbindfs -rなどを使用する
Sum1sAdmin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.