/etc/mtab
Linuxには何がありますか?
なぜ必要なのか、それを持っていることの利点は何ですか?
man 5 mtab
と思います。
/etc/mtab
Linuxには何がありますか?
なぜ必要なのか、それを持っていることの利点は何ですか?
man 5 mtab
と思います。
回答:
%ファイル/ 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で、人間が読み取れる中間形式でマーシャリングせずに、機械読み取り可能な形式でカーネルからマウントテーブルを取得するための本格的なシステムコールを備えています。
/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。mtab(5)
、昔からのものです:man.cat-v.org/unix_8th/5/mtab。
/proc/mounts
、/proc/self/mounts
それ自体が互換性メカニズムになりました。で利用可能な情報のサブセットのみを表示しています/proc/self/mountinfo
。フォーマット/proc/self/mounts
に記載されているproc(5)
と同じようにfstab(5)
によるとman mount
:
プログラムは従来、ファイル/ etc / mtabに現在マウントされているファイルシステムのリストをマウントおよびアンマウントしていました。この実際のmtabファイルは引き続きサポートされますが、現在のLinuxシステムでは、代わりに/ proc / mountsへのシンボリックリンクを作成することをお勧めします。ユーザースペースに保持されている通常のmtabファイルは、ネームスペース、コンテナ、およびその他の高度なLinux機能で確実に動作できないためです。
記録せずにマウントする場合/etc/mtab
:
-n、-no-mtab
/ etc / mtabに書き込まずにマウントします。これは、たとえば/ etcが読み取り専用ファイルシステム上にある場合に必要です。
マニュアルページには、さらに多くのニュアンスが記載されています。