/proc/がマウントされているかどうかを確認する方法

/proc/がマウントされているかどうかを確認する方法

/proc/がマウントされているかどうかを確認するには?

  • /etc/mtab は一貫性がない可能性があるため、使用しないことをお勧めします。

  • /proc/mounts を使用することもオプションではありません。これは/proc/がマウントされていない場合は存在しない可能性があるためです。 (ただし、存在するかどうかを確認することも、この確認を実行する方法の1つです。)

このチェックを実行する最良の方法は何ですか?

答え1

mount引数なしでコマンドを実行して、現在インストールされているインストールのリストを取得できます。ファイルには同様のデータが含まれている必要がありますが、あなたが言ったように、/etc/mtabファイルシステムが台無しにされたり、書き込めなかったり、他のプログラムが問題を引き起こしたりする場合、実際にインストールされたデータと一致しない可能性があります。/etc次のように、すべての種類のマウントを一覧表示するように要求して、プロセスマウントに関する特定の情報を取得できます。mountproc

mount -l -t proc

編集する:フォルダstatのデバイスを次のもの/procと比較して、/ルートファイルシステム以外のものがマウントされているかどうかを少なくとも知ることができるようです。

[[ $(stat -c %d%D /proc) != $(stat -c %d%D /) ]] && echo "Something is mounted at /proc"

答え2

それが存在するかどうかをテストしてください/proc/mounts。インストールされていないと起動するため、実行することはお勧めできmountません。/proc/etc

理論的には他に何かがあるかもしれません/proc。しかし、実際にはその可能性はほとんどありません。ファイルシステムが/proc/mounts存在し、ファイルシステムで/procないproc場合、環境に関する情報は信頼できません。本当に心配な場合は、ファイルシステムの種類が次のようになっていることを確認できますproc。 (df -PT /proc | awk 'NR==2 && $2=="proc" {print 1}'Linuxユーティリティが必要で、dfBusyboxにはそのオプションはありません。)代わりに、理論的には別の場所にマウントされたprocファイルシステムがあります。シェルコマンドを使用してそれを簡単に見つける方法はありません(列挙されたファイルシステムをdf読む)。/proc/mounts実際には/proc/mounts

答え3

/ procのファイルシステムが実際にprocであり、他のファイルシステムやディレクトリ構造ではないことを(多少)保証するには、次のように呼び出すことができます。statfs()0x9fa0そしてprocの値である型を確認してください。

答え4

mountpoint多くのLinuxインストールには「使用可能」というツールがあります。最初の引数がマウントポイントの場合、終了コードは0です。

関連情報