df에 여러 tmpfs 항목이 포함된 이유는 무엇입니까?

df에 여러 tmpfs 항목이 포함된 이유는 무엇입니까?

내가 아는 한 여기에는 df -a"가짜, 중복 및 액세스할 수 없는 파일 시스템"이 포함됩니다. 이로 인해 다음과 같은 상당수의 마운트가 숨겨집니다.

udev             8055632         0   8055632   0% /dev
devpts                 0         0         0    - /dev/pts

-a...해당 옵션을 통과하지 않으면 나타나지 않습니다. 그러나 실패할 경우 무엇이 포함되는지에 관심이 있습니다 -a.

Filesystem     1K-blocks      Used Available Use% Mounted on
tmpfs            1624300      3292   1621008   1% /run
/dev/sda1      122485360  12664524 103552780  11% /
tmpfs            8121496     60308   8061188   1% /dev/shm
tmpfs               5120         4      5116   1% /run/lock
/dev/sdb1      460366888 154205092 282702932  36% /home
tmpfs            1624296      1688   1622608   1% /run/user/1000
/dev/sdc2      488282108 324162964 164119144  67% /media/jez/Picard - Main [C]

내 관점에서 볼 때 세 개의 "실제" 파티션은 sda1, sdb1, 및 이며, sdc2이는 물리적 디스크의 실제 파티션을 가리킵니다. df기본 출력에 다른 마운트도 포함된다는 것은 어떻게 결정됩니까 tmpfs? tmpfs"의사" 파일 시스템 이 아닌가요 ?

답변1

임시 파일 시스템의사 파일 시스템이 아니라 가상 메모리에 내용을 저장하는 실제 파일 시스템입니다. 차이점은 의사 파일 시스템이 다음을 제공한다는 것입니다.표현하다실제 파일 시스템은 아티팩트를 직접 저장합니다.

중요한 점은 df의사 파일 시스템은 데이터를 직접 추가할 수 없기 때문에 일반적인 방법으로 저장 공간을 소모할 수 없다는 것입니다. 실제 파일 시스템할 수 있는부족한 저장 공간, 그것이 df정말 "신경쓰이는" 부분입니다. tmpfs 파일 시스템은 가득 찰 수 있으므로 기본적으로 나열됩니다.

답변2

df( POSIX에는 이 플래그가 없으므로 GNU에서 작동합니다 .) 0이 아닌 크기로 마운트된 파일 시스템은 -a기본적으로 df표시됩니다 .

df -ah

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.9G  5.6G  2.0G  74% /
devtmpfs        458M     0  458M   0% /dev
proc               0     0     0    - /proc
sysfs              0     0     0    - /sys
tmpfs           462M  1.1M  461M   1% /dev/shm
devpts             0     0     0    - /dev/pts
tmpfs           185M  1.5M  184M   1% /run
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
cgroup2            0     0     0    - /sys/fs/cgroup
systemd-1          -     -     -    - /proc/sys/fs/binfmt_misc
mqueue             0     0     0    - /dev/mqueue
sunrpc             0     0     0    - /run/rpc_pipefs
debugfs            0     0     0    - /sys/kernel/debug
tracefs            0     0     0    - /sys/kernel/tracing
fusectl            0     0     0    - /sys/fs/fuse/connections
configfs           0     0     0    - /sys/kernel/config
ramfs              0     0     0    - /run/credentials/systemd-sysctl.service
ramfs              0     0     0    - /run/credentials/systemd-sysusers.service
ramfs              0     0     0    - /run/credentials/systemd-tmpfiles-setup-dev.service
/dev/mmcblk0p1   63M   22M   42M  35% /boot
ramfs              0     0     0    - /run/credentials/systemd-tmpfiles-setup.service
binfmt_misc        0     0     0    - /proc/sys/fs/binfmt_misc
tmpfs            93M     0   93M   0% /run/user/1001

기본적으로 크기가 0인 항목(두 번째 열)은 생략됩니다. 즉, 다음 파일 시스템은 다음과 같습니다.

Filesystem      Size  Used Avail Use% Mounted on
proc               0     0     0    - /proc
sysfs              0     0     0    - /sys
devpts             0     0     0    - /dev/pts
cgroup2            0     0     0    - /sys/fs/cgroup
systemd-1          -     -     -    - /proc/sys/fs/binfmt_misc
mqueue             0     0     0    - /dev/mqueue
sunrpc             0     0     0    - /run/rpc_pipefs
debugfs            0     0     0    - /sys/kernel/debug
tracefs            0     0     0    - /sys/kernel/tracing
fusectl            0     0     0    - /sys/fs/fuse/connections
configfs           0     0     0    - /sys/kernel/config
ramfs              0     0     0    - /run/credentials/systemd-sysctl.service
ramfs              0     0     0    - /run/credentials/systemd-sysusers.service
ramfs              0     0     0    - /run/credentials/systemd-tmpfiles-setup-dev.service
ramfs              0     0     0    - /run/credentials/systemd-tmpfiles-setup.service
binfmt_misc        0     0     0    - /proc/sys/fs/binfmt_misc

결과적으로 다음과 같은 기본 출력이 표시됩니다.

df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.9G  5.6G  2.0G  74% /
devtmpfs        458M     0  458M   0% /dev
tmpfs           462M  1.1M  461M   1% /dev/shm
tmpfs           185M  1.5M  184M   1% /run
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
/dev/mmcblk0p1   63M   22M   42M  35% /boot
tmpfs            93M     0   93M   0% /run/user/1001

info이는 및 의 문서와 일치하지 않습니다 man.

인수가 없으면 df현재 마운트된 모든 파일 시스템(모든 유형)의 사용된 공간과 여유 공간을 보고합니다.

뿐만 아니라

-a --all기본적으로 무시되는 가상, 중복 또는 액세스할 수 없는 파일 시스템을 목록에 포함합니다.

이는 소스코드(coreutils, ) df.c에서 확인됩니다 . 다음은 명령줄에 명시적으로 나열된 파일 시스템에 의해 설정된 fsu_blocks파일 시스템 블록 수입니다 .show_all_fs-ashow_listed_fs

if (fsu.fsu_blocks == 0 && !show_all_fs && !show_listed_fs)
  return;

관련 정보