tmpfsはどこから来て、どのようにマウントされるのか

tmpfsはどこから来て、どのようにマウントされるのか

私は Linux で BeagleBone ボードを使用しています。

コマンド「df -h「 、tmpfs が数回マウントされていることがわかります。

これは、これらすべてのエントリが同じ場所にマウントされるか、または tmpfs の別の部分にマウントされることを意味しますか?

もう一つ、よくわからないことがあります。そもそも、この tmpfs ファイル システムはどこで作成されるのでしょうか。Linux の起動時に作成されるのだと思います。このファイル システムを作成するスクリプトを見つけることができるでしょうか。

tmpfs                   242.4M         0    242.4M   0% /dev/shm
tmpfs                   242.4M      8.3M    234.2M   3% /run
tmpfs                   242.4M         0    242.4M   0% /sys/fs/cgroup
tmpfs                   242.4M     36.0K    242.4M   0% /tmp
tmpfs                   242.4M     16.0K    242.4M   0% /var/volatile
tmpfs                   242.4M     16.0K    242.4M   0% /var/lib

答え1

これらはすべて異なるファイルシステムです。共通しているのはファイルシステムの種類です。これらはtmpfsデータをメモリに保存するドライバーを使用します¹。これらがすべて含まれる「スーパー tmpfs」はなく、すべてのインスタンスは独立しています。

「デバイス列」が表示されるのtmpfsは、多くの構成が想像力に欠けており、デバイス名とファイルシステムの種類に同じ文字列を使用しているためです。tmpfs ドライバーはどこからもデータをロードしないため、「デバイス名」を無視します。

これらのファイルシステムはマウントすることで作成され、アンマウントすることで破棄されます。たとえば、次のコマンドは、内容がルート ディレクトリのみ (すべての tmpfs ファイルシステムはこのように始まります)、所有者がルートで権限が与えられrwxrwxrwt、最大サイズが 100 MB の tmpfs ファイルシステムを作成します。

mount -t tmpfs -o size=100Mi,mode=1777 some_arbitrary_name /mnt

マウント呼び出しはブート スクリプトで行われます。昔は、mount起動時に実行されるシェル スクリプトで コマンドの呼び出しを見つけることができました。は/var/libtmpfs マウント ポイントとしては珍しく、 を介して構成できます/etc/fstab。今日では、それらのほとんど (すべてではないにしても) は systemd によってマウントされています。

¹それは仮想メモリ、つまり RAM またはスワップです。

関連情報