/proc/self/mountinfo
マウントポイントのリストを提供します。最近の順に並べられていると思います。作られた最後にインストールされました(mount --move
影響しません)。
もしそうなら、あなたが最近行った、または作成されたインストールのためにインストールにアクセスできなくなったことを確認できますか?
man proc
表示される最初のフィールド/proc/self/mountinfo
は「インストールID」です。ただし、指定されたパスで最上位のマウント ID を確認する方法については説明しません。
statvfs()
(/usr/bin/stat -f
)は「ファイルシステムID」と呼ばれる他のものを検索できます。各ファイルシステムに固有の値があるようです...ここで質問した内容は役に立ちませんが、元の問題を解決するのに十分です...ファイルシステムIDを関連付ける方法もある場合は、インストールパスとすべてのインストールオプションが含まれています。 (statvfs()
「マウントフラグ」を返しますが、ファイルシステム固有のオプションは返しません/proc/self/mountinfo
。)
これに対する2番目の関心は、不完全な過負荷検出を次のように報告したことです。部族df
。
私の考えではFSINFO_ATTR_MOUNT_INFOこの質問にはとてもよく答えます。ただし、このパッチは現在カーネルでまだ承認されていません。
ベストアンサー1
.txtファイルの「親ID」フィールドを見ると、インストールツリーのすべての詳細がわかりますmountinfo
。
2つのマウントを検討して/dir/sub
ください/dir
。親マウント/dir/sub
でない/dir
場合はマスクする必要/
があります。/dir/sub
/dir
または、パスに2つのインストールがある場合、/
1つはもう1つの親になり、子は最上位(アクセス可能)インストールになります。
二人いれば以上まったく同じパスにインストールされている場合、これらのインストールの最上位は他のインストールの親ではありません。
だからこれを試してみてください:
マウントパスPを確認してください。マウントMの子孫であるマウントがPにある場合、マウントMは非表示になります(停止)。
マウントパスPを確認してください。マウントMの親であるPにマウントがある場合は、Mをその親に設定して2を繰り返します。
1つ以上のマウントポイントを持つパスPの最長のサブプレフィックスPREを確認します。マウントMのトップマウントPARを探します。親マウントPARが存在しない場合、マウントMは非表示になります(中止)。
再帰的に:親マウントPARが非表示になると、元のマウントも非表示になります。
注:パスには/
より小さいプレフィックスはありません。ステップ2に達し、パスPがと等しい場合、/
マウントMが隠されていないことがわかります。止まる