/etc/mtab
Linuxには何がありますか?
なぜ必要なのか、それを持っているとどんな利点がありますか?
答え1
%ファイル/etc/mtab /etc/mtab: ../proc/self/mountsへのシンボリックリンク %ファイル/プロシージャ/マウント /proc/mounts: self/mounts へのシンボリックリンク %
/etc/mtab
これは互換性メカニズムです。数十年前、Unixには既存のマウント情報を読み取るためのシステムコールはありませんでした。代わりに、ファイルシステムをマウントするプログラムは、/etc/mtab
マウントされた内容と場所を記録するテーブルを協力して自発的に維持する必要があります。
明らかな理由から、これは理想的なメカニズムではありません。
mounts
Linux は "procfs" という概念を得ており、そのうちの 1 つは擬似正規ファイルの形でそのテーブルのカーネル保持バージョンでした。カーネルからマウント情報を読み取る「システムコール」は、ファイルのオープン - 読み込み - クローズシーケンスになり、その結果は、人間が読める形式からマシンが読める形式に解析されます。 2週間前のバグレポートで知ることができます。)
/etc/mtab
その結果、これは/proc/mounts
その名前でハードワイヤードされたプログラムがそのファイルからマウントテーブルを読み続けることを可能にするシンボリックリンクとして人気があり、ファイルシステムをマウントしてアンマウントしたプログラムは最新の状態を維持するつまり、何もする必要はありませんでした。 (しかし、/etc/mtab
結果が書き込み可能な通常のファイルである場合、いくつかはまだそうです、そしてmounts
カーネル以外のすべてのエントリの正規化情報が不足しているため、必ずしも必要ではありませんが、いくつかの極端なケースもありますが、それは問題ではありません。一般的な問題です/etc/mtab
。 )
各プロセスはインストールされたアイテムの別々のビューを持つことができるので、各mounts
プロセスはprocfsに別々のファイルを持ち、各プロセスの独自のテーブルにシンボリックリンクを介してself
アクセスできるようになりました。self/mounts
/proc/mounts
返品今、互換性メカニズムがあります。 (興味深いことに、現在Linux docoにはすべてのプロセスのドキュメントやドキュメントフォーマットはありませんが、mounts
同様の類似した正規ファイルがあります。)mounts
mountinfo
SunOS/Solarisにも同様のメカニズムがあります。この/etc/mnttab
ファイルは、実際にテーブルを読み取ることに加えて、read()
マウントポイントの変更を監視poll()
し、ファイル内の開かれたファイル記述子を介したシステムコールを介してさまざまな追加情報を取得するために使用できる単一のファイルファイルシステムですioctl()
。
HP-UXでは/etc/mnttab
ファイル名でもありますが、バージョン11以降はシステムユーティリティでコンテンツを共同で維持する一般的なファイルです。
AIXは、プログラムが構文解析する必要がある人が読めるテキスト表をエクスポートせず、それに対応するファイルはありません。同様に、BSDには、getfsstat()
FreeBSDとOpenBSDへの成熟したシステムコールがあります。
追加読書
- ジグムント・クレニツキ(2019-03-16)。パスの \r はマウントデバイスを混乱させます。。 12018章システムの問題。
- ズビーニュ・イエド・ジェエフスキー・スメク(2019-04-04)。
/proc/self/mountinfo
マウントパスの[df] \ rが正しく解析されませんでした。。 #35137。 GNU coreutilsのバグ。 /proc/mounts
。 ドキュメント/ファイルシステム/proc.txt。 Linux 5.1。- ジョナサン・デ・ボイン・ポラード(2019-02-28)。返信:目的は何ですか?
fstab-decode
。バグ#567071。 Debian エラーです。 getfsstat()
。 FreeBSDシステムコールマニュアル。 2016年12月27日。
答え2
によるとman mount
:
従来、マウントおよびアンマウントプログラムは、/ etc / mtabファイルに現在マウントされているファイルシステムのリストを保持していました。この実際のmtabファイルは引き続きサポートされていますが、現在のLinuxシステムでは/proc/mountsへのシンボリックリンクにすることをお勧めします。ユーザースペースに保持されている一般的なmtabファイルは、名前空間、コンテナと信頼性の高いインターフェースを提供できず、他の高度なLinuxで使用されます。特徴。
インストール中に記録されない/etc/mtab
:
-n、--no-mtab
マウントするために/etc/mtabに書き込む必要はありません。たとえば、/ etcが読み取り専用ファイルシステムにある場合は、これが必要です。
詳細はマニュアルページにあります。
答え3
JdeBPの答えはおそらく最も実用的で便利です。以前にどのように使用されたかについてのビューを提供する(やや古い)Linux学習準備ガイドでコンテンツを追加できます。
/etc/mtab
との違いは、カーネルが保存するユーザー空間管理情報/proc/mounts
とカーネルが保存する情報であることです。/etc/mtab
mount
/proc/mounts
源泉