tmpfs는 어디에서 왔으며 어떻게 마운트됩니까?

tmpfs는 어디에서 왔으며 어떻게 마운트됩니까?

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메모리1에 데이터를 저장하는 드라이버를 사용합니다. 모두가 속해 있는 "super-tmpfs"는 없습니다. 모든 인스턴스는 독립적입니다.

"장치 열"은 tmpfs많은 구성이 상상력이 부족하고 파일 시스템 유형과 장치 이름에 동일한 문자열을 사용하기 때문에 표시됩니다. tmpfs 드라이버는 어디에서든 데이터를 로드하지 않기 때문에 "장치 이름"을 무시합니다.

이러한 파일 시스템은 마운트하면 생성되고 마운트 해제하면 파괴됩니다. 예를 들어, 다음 명령은 내용이 루트 디렉터리(모든 tmpfs 파일 시스템은 이 방식으로 시작됨)이고, 루트가 소유하고 권한이 있고 rwxrwxrwt최대 크기가 100MB인 tmpfs 파일 시스템을 만듭니다.

mount -t tmpfs -o size=100Mi,mode=1777 some_arbitrary_name /mnt

마운트 호출은 부팅 스크립트에서 수행됩니다. 예전에는 mount시작 중에 실행되는 쉘 스크립트에서 명령에 대한 호출을 찾을 수 있었습니다. /var/libtmpfs 마운트 지점으로는 일반적이지 않으며 를 통해 구성할 수 있습니다 /etc/fstab. 요즘은 전부는 아니더라도 대부분 systemd에 마운트됩니다.

¹ 이것이 바로 가상 메모리입니다. RAM 또는 스왑입니다.

관련 정보