私は 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/lib
tmpfs マウント ポイントとしては珍しく、 を介して構成できます/etc/fstab
。今日では、それらのほとんど (すべてではないにしても) は systemd によってマウントされています。
¹それは仮想メモリ、つまり RAM またはスワップです。