/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 항목을 사용하면 마지막 두 개만 나타납니다.
나는 다음과 같은 이유로 이것이 궁금합니다.
- 언제 바인드 마운트 플래그를 사용해야 하는지 모르겠습니다.
- 나는
/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
Mount는 주어진 디렉터리에 이미 존재하는 모든 것을 숨기거나 섀도잉합니다(섀도우 디렉터리에 잘못된 권한이 있는 경우 흥미로운 문제가 발생할 수 있습니다). 따라서 tmpfs 마운트를 제거해도 원래 내용은 그대로 유지됩니다. (캐시를 유지해야 하는 경우 mv /var/cache /var/cache.save tmpfs를 처음 마운트한 후 마운트 해제하기 전에 rsync를 수행할 수 있지만 이는 더 복잡합니다.)