/proc/がマウントされているかどうかを確認するには?
/etc/mtab は一貫性がない可能性があるため、使用しないことをお勧めします。
/proc/mounts を使用することもオプションではありません。これは/proc/がマウントされていない場合は存在しない可能性があるためです。 (ただし、存在するかどうかを確認することも、この確認を実行する方法の1つです。)
このチェックを実行する最良の方法は何ですか?
答え1
mount
引数なしでコマンドを実行して、現在インストールされているインストールのリストを取得できます。ファイルには同様のデータが含まれている必要がありますが、あなたが言ったように、/etc/mtab
ファイルシステムが台無しにされたり、書き込めなかったり、他のプログラムが問題を引き起こしたりする場合、実際にインストールされたデータと一致しない可能性があります。/etc
次のように、すべての種類のマウントを一覧表示するように要求して、プロセスマウントに関する特定の情報を取得できます。mount
proc
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ユーティリティが必要で、df
Busyboxにはそのオプションはありません。)代わりに、理論的には別の場所にマウントされたprocファイルシステムがあります。シェルコマンドを使用してそれを簡単に見つける方法はありません(列挙されたファイルシステムをdf
読む)。/proc/mounts
実際には/proc/mounts
。
答え3
/ procのファイルシステムが実際にprocであり、他のファイルシステムやディレクトリ構造ではないことを(多少)保証するには、次のように呼び出すことができます。statfs()
0x9fa0
そしてprocの値である型を確認してください。
答え4
mountpoint
多くのLinuxインストールには「使用可能」というツールがあります。最初の引数がマウントポイントの場合、終了コードは0です。