/var
10Gb 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
しますfontconfig
。man
tmpfs fstabエントリを使用すると、最後の2つだけが表示されます。
私は次の理由でこれが気になります。
- いつバインドマウントフラグを使用するのかわかりません。
- 私は
/run
tmpfsマウントを持っていますが、マウントの内容がマウントなしで表示されるものと同じであるかどうかはわかりません。
なぜこれですか?
答え1
にリストされているので、tmpfsファイルシステムは/var/cache
起動シーケンス中に/etc/fstab
マウントされます。取付点により、/var/cache
すべての内容が隠されます。/var/cache
他のファイルシステムにマウントされているディレクトリの下のファイルはまだ存在しますが、同様のパスが別の/var/cache/foo
ファイルシステムにリンクされているため、アクセスできません。
df
との違いの詳細については、du
以下を参照してください。ディスク使用量を測定する方法はなぜそんなに変わりますか?
/var/cache
Linuxではバインドマウントの/var
。これにより、使用されなくなった古いキャッシュファイルを削除できます。
mount --bind /var /mnt
rm -r /mnt/cache/*
umount /mnt
何を意味するのかわかりませんが、/run
tmpfsファイルシステムをマウントするたびに別のファイルシステムを取得することに注意してください。したがって、関連のないファイル/run
は/var/cache
他のファイルには表示されません。これは、同じドライバによって提供される2つのファイルシステムです。
答え2
Mountは、指定されたディレクトリに既に存在するすべてを非表示またはシャドウイングします(シャドウディレクトリに無効な権限がある場合は、興味深い問題が発生する可能性があります)。したがって、tmpfsマウントを削除しても、元の内容はそのまま残ります。 (キャッシュを維持する必要がある場合は、mv /var/cache /var/cache.save tmpfsを最初にマウントした後、アンマウントする前にrsyncを実行できますが、これはより複雑です。)