tmpfs - 제거 후에도 파일이 유지됩니다.

tmpfs - 제거 후에도 파일이 유지됩니다.

나는 tmpfs이것에 대해 배우고 있습니다.매뉴얼 페이지왜냐하면 tmpfs-

tmpfs 도구를 사용하면 내용이 가상 메모리에 있는 파일 시스템을 생성할 수 있습니다.

그리고 -

tmpfs 파일 시스템이 마운트 해제되면 해당 내용이 삭제(손실)됩니다.

하지만 제거한 후에도 파일을 볼 수 있습니다.

mediumone@ubuntu:~$ mkdir tmpfsdir
mediumone@ubuntu:~$ cd tmpfsdir/

mediumone@ubuntu:~/tmpfsdir$ sudo mount -t tmpfs tmpfs ~/tmpfsdir/

mediumone@ubuntu:~/tmpfsdir$ findmnt
TARGET                                SOURCE         FSTYPE              OPTIONS
/                                     /dev/sda1      ext4                rw,relatime,errors=remount-ro
├─/sys                                sysfs          sysfs               rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security              securityfs     securityfs          rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup                    tmpfs          tmpfs               ro,nosuid,nodev,noexec,mode=755
..snip
├─/snap/gnome-3-28-1804/116           /dev/loop15    squashfs            ro,nodev,relatime
└─/home/mediumone/tmpfsdir            tmpfs          tmpfs               rw,relatime

mediumone@ubuntu:~/tmpfsdir$ echo "hello world" >> hello
mediumone@ubuntu:~/tmpfsdir$ ls -l
total 4
-rw-r--r-- 1 mediumone mediumone 12 Feb 17 02:15 hello

mediumone@ubuntu:~/tmpfsdir$ sudo umount -l ~/tmpfsdir/

mediumone@ubuntu:~/tmpfsdir$ findmnt
TARGET                                SOURCE         FSTYPE              OPTIONS
/                                     /dev/sda1      ext4                rw,relatime,errors=remount-ro
├─/sys                                sysfs          sysfs               rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security              securityfs     securityfs          rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup                    tmpfs          tmpfs               ro,nosuid,nodev,noexec,mode=755
..snip
└─/snap/gnome-3-28-1804/116           /dev/loop15    squashfs            ro,nodev,relatime

mediumone@ubuntu:~/tmpfsdir$ ls -l
total 4
-rw-r--r-- 1 mediumone mediumone 12 Feb 17 02:15 hello
mediumone@ubuntu:~/tmpfsdir$ cat hello 
hello world
mediumone@ubuntu:~/tmpfsdir$ 

나도 이것을 시도했지만 sudo umount -f ~/tmpfsdir/같은 결과를 얻었습니다.

누군가 무엇이 잘못되었는지 설명할 수 있습니까?

답변1

현재 디렉터리에 설치 중입니다. 쉘은 cd해당 디렉토리로 돌아갈 때까지 마운트된 디렉토리 대신 원래 디렉토리를 계속 사용합니다 . 다른 명령도 원래 디렉터리를 상속합니다.

% mkdir foo
% cd foo
~/foo
% df -h .
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-vg-root  1.8T   77G  1.7T   5% /
% sudo mount  -t tmpfs tmpfs ~/foo
% df -h .
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-vg-root  1.8T   77G  1.7T   5% /

그러나 디렉토리에 대한 새로운 액세스는 마운트된 디렉토리를 사용합니다.

% df -h . ~/foo
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-vg-root  1.8T   77G  1.7T   5% /
tmpfs                       3.9G     0  3.9G   0% /home/muru/foo

이 작업을 다시 수행 하는 경우 cd:

% cd .
% df -h . ~/foo
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.9G     0  3.9G   0% /home/muru/foo
tmpfs           3.9G     0  3.9G   0% /home/muru/foo

답변2

cd처음에는 tmpfsdir쉘의 작업 디렉토리가 기존 파일 시스템에 있습니다. mount작업 디렉터리는 변경되지 않으며 tmpfs파일 시스템이 아닌 작업 디렉터리가 있는 기본 파일 시스템에 새 파일이 생성됩니다.

마운트 후 디렉토리를 변경하면 원하는 결과를 얻을 수 있습니다.

관련 정보