とは /etc/mtab
Linuxでは?
なぜそれが必要で、それを持っていることの利点は何ですか?
%ファイル/etc/mtab /etc/mtab:../proc/self/mounts へのシンボリックリンク%file /proc/mounts /proc/mounts:シンボリックリンク自己/マウント %
_/etc/mtab
_は互換性メカニズムです。数十年前、UNIXには既存のマウント情報を読み取るためのシステムコールがありませんでした。代わりに、ファイルシステムをマウントしたプログラムは、マウントされた場所の_/etc/mtab
_にテーブルを協調的かつ自主的に維持することが期待されていました。
明らかな理由により、これは理想的なメカニズムではありませんでした。
Linuxは "procfs"の概念を獲得し、Linuxが得たものの1つは、mounts
疑似正規ファイルの形式で、このテーブルのカーネル管理バージョンでした。カーネルからマウント情報を読み取るための「システムコール」は、そのファイルに対するオープン-リード-クローズシーケンスになり、その後、人間が読み取れる形式から機械が読み取れる形式(微妙なキャッチを含むもの)への結果を解析します。 2週間前のバグレポートから確認できます)。
したがって、_/etc/mtab
_は一般的に_/proc/mounts
_へのシンボリックリンクになり、その名前をハードワイヤードしたプログラムがそのファイルからマウントテーブルを読み取り続けることができるようになりました。自分自身を最新に保つために。 (ただし、_/etc/mtab
_が書き込み可能な通常のファイルであることが判明した場合でも、それらの一部はそのまま残ります。カーネル以外のすべてのものが不足しているmounts
の正規化情報が_/etc/mtab
_の一般的な問題を上回るわけではありませんが、必要なものはそれほど多くありません。
現在、各プロセスはマウントされたものの独自の個別のビューを持つことができ、結果として、procfs内の各プロセスに個別のmounts
ファイルが存在し、各プロセスの独自のテーブルにself
_self/mounts
_および_/proc/mounts
_としてのシンボリックリンクはalsoであり、互換性メカニズムになりました。 (興味深いことに、プロセスごとのmounts
もmounts
の形式も、現在のLinux docoには文書化されていませんが、類似のmountinfo
疑似正規ファイルがあります。)
SunOS/Solarisにも同様のメカニズムがあります。 _/etc/mnttab
_ファイルは実際には単一ファイルのファイルシステムであり、テーブルの読み取りに加えて、そのファイルへのオープンファイル記述子を介して、read()
システムコールを使用して、マウントポイントを監視できます。 poll()
で変更し、ioctl()
でさらにさまざまな情報を取得します。
HP-UXでは、_/etc/mnttab
_も同様にファイルの名前ですが、バージョン11の時点では、通常のファイルであり、その内容はシステムユーティリティプログラムによって協調的に維持されていました。
AIXは、プログラムが解析しなければならない人間が読めるテキストテーブルをエクスポートせず、同等のファイルはありません。同様に、BSDには、プログラムが人間が読める中間形式を介してマーシャリングせずに、マシンが読める形式でカーネルからマウントテーブルを取得するための、完全なシステムコールgetfsstat()
がFreeBSDとOpenBSDにあります。
/proc/self/mountinfo
_の解析が正しくありません。\ rがマウントパスにあります。 #35137。 GNU coreutilsのバグ。/proc/mounts
_ 。 Documentation/filesystems/proc.txt。 Linux 5.1。fstab-decode
_の目的は何ですか。バグ#567071。 Debianのバグ。getfsstat()
。 FreeBSDシステムコールマニュアル。 2016年12月27日。man mount
によると:
プログラムは伝統的に、現在マウントされているファイルシステムのリストをファイル/ etc/mtabに維持およびマウント解除していました。この実際のmtabファイルは引き続きサポートされますが、現在のLinuxシステムでは、/ proc/mountsへのシンボリックリンクを作成することをお勧めします。ユーザー空間で維持される通常のmtabファイルは、名前空間、コンテナ、その他の高度なLinux機能と確実に連携できないためです。
/etc/mtab
に記録せずにマウントした場合:
-n、-no-mtab
/ etc/mtabに書き込まずにマウントします。これは、たとえば/ etcが読み取り専用ファイルシステムにある場合に必要です。
より多くのニュアンスがマニュアルページに記載されています。