Tmpfs は別のパーティションにディレクトリをマウントします。

Tmpfs は別のパーティションにディレクトリをマウントします。

/var10Gb EXT4パーティションがあります。 tmpfsを使ってRAMに保存し/たいです。/var/cacheアイテムは/etc/fstab非常に簡単です。

tmpgs /var/cache tmpfs size=500M,rw,nodev,nosuid,noexec,noatime 0,0

ただし、このエントリがない場合は、du -shディスクサイズが次のように表示されます。

# du -sh /var/cache
215M    /var/cache

ただし、上記のfstabエントリを適用して再起動してdu -sh再実行すると、次のような結果が表示されます。

# du -sh /var/cache
160K    /var/cache

tmpfsエントリがない場合、およびフォルダがldconfig存在yumしますfontconfigmantmpfs fstabエントリを使用すると、最後の2つだけが表示されます。

私は次の理由でこれが気になります。

  1. いつバインドマウントフラグを使用するのかわかりません。
  2. 私は/runtmpfsマウントを持っていますが、マウントの内容がマウントなしで表示されるものと同じであるかどうかはわかりません。

なぜこれですか?

答え1

にリストされているので、tmpfsファイルシステムは/var/cache起動シーケンス中に/etc/fstabマウントされます。取付点により、/var/cacheすべての内容が隠されます。/var/cache他のファイルシステムにマウントされているディレクトリの下のファイルはまだ存在しますが、同様のパスが別の/var/cache/fooファイルシステムにリンクされているため、アクセスできません。

dfとの違いの詳細については、du以下を参照してください。ディスク使用量を測定する方法はなぜそんなに変わりますか?

/var/cacheLinuxではバインドマウント/var。これにより、使用されなくなった古いキャッシュファイルを削除できます。

mount --bind /var /mnt
rm -r /mnt/cache/*
umount /mnt

何を意味するのかわかりませんが、/runtmpfsファイルシステムをマウントするたびに別のファイルシステムを取得することに注意してください。したがって、関連のないファイル/run/var/cache他のファイルには表示されません。これは、同じドライバによって提供される2つのファイルシステムです。

答え2

Mountは、指定されたディレクトリに既に存在するすべてを非表示またはシャドウイングします(シャドウディレクトリに無効な権限がある場合は、興味深い問題が発生する可能性があります)。したがって、tmpfsマウントを削除しても、元の内容はそのまま残ります。 (キャッシュを維持する必要がある場合は、mv /var/cache /var/cache.save tmpfsを最初にマウントした後、アンマウントする前にrsyncを実行できますが、これはより複雑です。)

関連情報