web-dev-qa-db-ja.com

Linuxで/ proc / mountsの最初の列は実際にはどういう意味ですか?

_cat /proc/mounts_を実行すると、次のようになります(簡略化):

_rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
/dev/sda1 / ext3 rw,relatime,errors=continue,barrier=1,data=ordered 0 0
io /etc/blkio cgroup rw,relatime,blkio 0 0
...
_

コンテンツについて、 Red Hatのドキュメント は次のように述べています。

最初の列はマウントされているデバイスを指定し、2番目の列はマウントポイントを示し、3番目の列はファイルシステムのタイプを示します...

rootfsがデバイスではないと思います。このデバイスをudev(/dev)で見つけようとしていますが、取得できません。したがって、どのデバイスが_/_にマウントされているかわかりません(mountを使用してこの情報を取得できると言うかもしれませんが、rootfsここはmountコマンドではなくマウントされます)。

別の例は、VMware ESX 3.xサーバーで、mountの結果にリストされている「vmfs」エントリが見つかりませんが、_cat /proc/mounts_によって、_/vmfs /vmfs vmfs rw 0 0_が得られます。 rootfsの例として、ここでも最初の「/ vmfs」に関連するデバイスがわかりません。

質問:_/proc/mounts_の最初の列が実際に何を意味するのか誰かに教えてもらえますか?

PS。 _/proc/mounts_およびmountの詳細については、「 Linuxでマウントされたファイルシステムの完全で正確なリストを取得する方法は? "」をお読みください。

6
xanpeng

あなたが引用したドキュメントが言うように、最初の列は確かにデバイスです。 kernel.orgドキュメント によると、rootfsは、カーネルが常に何かがマウントされていることを確認するために使用するramfs(RAM内ファイルシステム)の特殊なケースです。 /に。 RAMのみで、0または無視できるほど小さなスペースが必要です。/proc/mountsをさらに調べると、/にマウントされた実際のルートパーティションを含むデバイスのエントリが表示されます。 。

5
jw013

/proc/mountsの最初の列は、カーネルによって記録されたデバイス名です。ほとんどの場合、これはmountを呼び出すときに指定された名前です(カーネル内の show_vfsmnt関数 のコードを参照してください)。ファイルシステムがその名前を微調整する方法はありますが、NFSとAFSだけがこの機会を利用します。

名前rootfsカーネルに組み込まれています ;起動時にルートファイルシステムに使用されます。カーネルが名前を取得せず、noneを使用する場合もあります。

実際のデバイスに保存されているファイルシステムをマウントする場合、デバイス名は非常に重要です。これは、そのファイルシステムがどこにあるかを示します。 “ virtual” filesystems の場合、デバイス名はしばしば無関係であり、単一の可能なバッキング(たとえば、procsysfsbinfmt_misc)またはそれぞれがあります。ファイルシステムはバッキング(tmpfs)から独立しているか、マウントオプションは基になるデータがどこにあるかを示します(ほとんど Fuse ファイルシステム)。

rootfsについてはよくわかりませんが、 proc はプロセスの「遊び場」です。これは仮想ファイルシステムであるため、/devには表示されませんが(私は思いません)、マウントすることはできます。

/devの実際のデバイスは、最初の列に絶対パスとともに表示されます(/dev/sda1の場合と同様)。

0
n0pe