df -h
인쇄:
Filesystem Size Used Avail Use% Mounted on
/dev/root 59G 6.6G 50G 12% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 9.0M 1.9G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mmcblk0p1 253M 54M 199M 22% /boot
tmpfs 391M 0 391M 0% /run/user/1000
또한 ncdu /
인쇄하십시오:
Total disk usage: 1.8 GiB Apparent size: 1.8 GiB Items: 176500
보고서 중 하나는 6.6+ GiB를 사용하는 반면 다른 보고서는 6.6+ GiB만 사용하는 이유는 무엇입니까 1.8 GiB
?
답변1
의 출력은 df
파일 시스템 수준 통계를 기반으로 하는 반면 ncdu
일반 은 물론 du
디렉터리 검색, 개별 파일 크기 읽기 및 요약을 통해 결과를 생성합니다.
du
-style 명령이 루트가 아닌 사용자로 실행되는 경우 모든 디렉토리에 대한 전체 액세스 권한이 필요하지 않으므로 모든 항목이 표시되지 않을 수 있습니다( sudo ncdu
이 예에서 사용됨).
실행해 보고 du -hs /
그 결과를 보고된 "총 디스크 사용량"과 비교해 보십시오 ncdu /
. 유사한 결과를 찾을 수도 있습니다. 을 사용하면 du
명령이 액세스할 수 없어 고려할 수 없는 여러 디렉터리에 대한 메시지가 표시될 수도 있습니다. 그것도 사실일 수 ncdu
있지만 오류 메시지를 숨길 뿐입니다.
ncdu
또한 최신 Linux 배포판의 가상 파일 시스템을 이해하도록 업데이트되지 않아 혼란스러울 수도 있는 것 같습니다 . 내 Debian 10 시스템에서는 ncdu /
다음과 같이 보고합니다.
Total disk usage: 75.6 GiB Apparent size: 128.1 TiB Items: 469143
내가 아는 한 "겉보기 크기"는 분명히 의미가 없고 쓸모가 없습니다. "총 디스크 사용량"은 내가 얻은 것과 거의 같습니다 du -hs /
. 그러나 여기에는 RAM 기반 가상 파일 시스템( devtmpfs
, tmpfs
)이 많이 포함되어 있으므로 그 숫자도 그다지 유용하지 않을 것입니다.
그러나 명령을 하나의 파일 시스템(예: )으로 제한하면 ncdu -x /
더 합리적인 결과를 얻을 수 있는 것 같습니다. 이 파일 시스템은 반올림 오류 내에서 to의 출력과 일치하며 파일 시스템에 du -shx /
출력과 일치하기 위해 약간의 공간이 필요할 수 있다는 점을 기억합니다. 그것을 저장할 때 . df -h
내부 메타데이터.
오류가 발생할 수 있는 또 다른 원인은 BTRFS 파일 시스템 스냅샷과 같은 고급 파일 시스템 기능을 사용하는 경우입니다. 물론 루트 파일 시스템에는 1.8GiB의 파일만 있을 수 있지만 해당 파일 시스템에 이전 상태의 스냅샷 2개도 포함되어 있는 경우 사용되는 총 디스크 공간은 보유한 파일 크기 합계의 3배에 달할 수 있습니다. (및 du
명령과 같은 것) 예상대로.
df
명령은 파일 시스템 드라이버를 조사하여 정보를 얻기 때문에 보고하는 큰 "사용된" 값에는 액세스하는 데 올바른 방법을 사용하지 않는 한 표시되지 않을 수 있는 스냅샷이 포함될 수 있습니다.