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합니다 fontconfig. mantmpfs fstab 항목을 사용하면 마지막 두 개만 나타납니다.

나는 다음과 같은 이유로 이것이 궁금합니다.

  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

Mount는 주어진 디렉터리에 이미 존재하는 모든 것을 숨기거나 섀도잉합니다(섀도우 디렉터리에 잘못된 권한이 있는 경우 흥미로운 문제가 발생할 수 있습니다). 따라서 tmpfs 마운트를 제거해도 원래 내용은 그대로 유지됩니다. (캐시를 유지해야 하는 경우 mv /var/cache /var/cache.save tmpfs를 처음 마운트한 후 마운트 해제하기 전에 rsync를 수행할 수 있지만 이는 더 복잡합니다.)

관련 정보