Linuxの/ etc / mtabとは何ですか?


30

/etc/mtabLinuxには何がありますか?

なぜ必要なのか、それを持っていることの利点は何ですか?



それがいらいらしているman 5 mtabと思います。
ウェイジュンジュウ

回答:


51
%ファイル/ etc / mtab
/ etc / mtab:../proc/self/mountsへのシンボリックリンク
%file / proc / mounts
/ proc / mounts:self / mountsへのシンボリックリンク
%

/etc/mtab互換性メカニズムです。数十年前、Unixには既存のマウント情報を読み取るためのシステムコールがありませんでした。代わりに、ファイルシステムをマウントしたプログラムは/etc/mtab、どこにマウントされたかのテーブルを協力的かつ自発的に維持することが期待されていました。

明らかな理由から、これは理想的なメカニズムではありませんでした。

Linuxは "procfs"の概念を獲得し、それが獲得したことの1つは、このテーブルのカーネル管理バージョンであり、mounts疑似正規ファイルの形式でした。カーネルからマウント情報を読み取るための「システムコール」は、そのファイルに対するオープンリードクローズシーケンスになり、その結果、人間が読み取れる形式から機械が読み取れる形式までの結果が解析されます。 2週間以上前のバグレポートから確認できます)。

/etc/mtabしたがって、一般的に、へのシンボリックリンクになり、/proc/mountsその名前を固定していたプログラムがそのファイルからマウントテーブルを読み続けることができるようになりました。これにより、ファイルシステムをマウントおよびアンマウントしたプログラムは、最新の状態を保つために明示的に何もする必要がなくなりました。(ただし、それらの一部は/etc/mtab、書き込み可能な通常のファイルであることが判明した場合でも、そうなります。そして、その中の正規化された情報mountsがすべての非カーネルのものを欠いているいくつかのコーナーケースがありますが、それらは重要ではありませんが、の一般的な問題/etc/mtab。)

各プロセスは、最近実装されているものの独自の個々のビューを持つことができ、現在は個々の結果として存在しているmountsのprocfsにおける各プロセスのファイルは、各プロセス自身を経由してそれにアクセス可能テーブルselfとしてシンボリックリンクself/mounts、とは/proc/mountsある、今の互換性機構。(興味深いことに、プロセスごとmountsやの形式はmounts現在のLinux doco には文書化されていませんが、類似のmountinfo擬似正規ファイルは文書化されています。)

SunOS / Solarisにも同様のメカニズムがあります。/etc/mnttabファイルと、実際には単一ファイルのファイルシステムであり、そのファイルへのオープンファイル記述子を介して、テーブルを読み取ることに加えて、read()システムコール、一つでマウントポイントの変更を見ることができるpoll()として情報の様々な更なる部分を得ますioctl()

HP-UX /etc/mnttabでも同様にファイルの名前ですが、バージョン11の時点では、システムユーティリティプログラムによって内容が協調的に維持されている通常のファイルでした。

AIXは、プログラムが解析する必要がある人間が読み取れるテキストテーブルをエクスポートせず、同等のファイルはありません。同様に、BSDは、getfsstat()FreeBSDおよびOpenBSDで、人間が読み取れる中間形式でマーシャリングせずに、機械読み取り可能な形式でカーネルからマウントテーブルを取得するための本格的なシステムコールを備えています。

参考文献


質問の私のコメントを補完するものはmtab(5)、昔からのものです:man.cat-v.org/unix_8th/5/mtab
周jun順

2
だけでなく/proc/mounts/proc/self/mountsそれ自体が互換性メカニズムになりました。で利用可能な情報のサブセットのみを表示しています/proc/self/mountinfo。フォーマット/proc/self/mountsに記載されているproc(5)と同じようにfstab(5)
mosvy


擬似ファイルと通常ファイルを知っていますが、擬似通常ファイルとは何ですか?
gerrit

@gerritサイズ0の通常のファイルですが、まだデータが含まれています;-)
mosvy

12

によるとman mount

プログラムは従来、ファイル/ etc / mtabに現在マウントされているファイルシステムのリストをマウントおよびアンマウントしていました。この実際のmtabファイルは引き続きサポートされますが、現在のLinuxシステムでは、代わりに/ proc / mountsへのシンボリックリンクを作成することをお勧めします。ユーザースペースに保持されている通常のmtabファイルは、ネームスペース、コンテナ、およびその他の高度なLinux機能で確実に動作できないためです。

記録せずにマウントする場合/etc/mtab

-n、-no-mtab

/ etc / mtabに書き込まずにマウントします。これは、たとえば/ etcが読み取り専用ファイルシステム上にある場合に必要です。

マニュアルページには、さらに多くのニュアンスが記載されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.