df는 du보다 20G 더 많은 디스크 공간을 사용했다고 말했습니다. 왜? [복사]

df는 du보다 20G 더 많은 디스크 공간을 사용했다고 말했습니다. 왜? [복사]

나는 du를 사용하여 모든 폴더를 나열하고 크기별로 정렬했는데 결과는 사용된 디스크 공간의 양과 전혀 동일하지 않았습니다(df 사용). 20G 정도 차이가 나는데 왜 그럴까요?

[root@xxx lib]# du --max-length=1 -h /|sort-nr
310M/도서관
123M/루트
96K/개발자
88M/등
75G/
73G/var
30M/스빈
20M/부팅
20K/tmp
18M/lib64
16K/월
16K/분실 + 발견
12K/가정
8.0K/서버
8.0K/se리눅스
8.0K/옵션
8.0K/기타
8.0K/미디어
7.0M/상자
1.2G/usr
0/시스템
0/프로세스
[root@xxx lib]# df -h
마운트된 %를 사용하여 사용 가능한 파일 시스템 크기 사용 가능
/dev/mapper/VolGroup00-LogVol00
                      298G 94G 189G 34% /
/dev/sda1 99M 26M 69M 28% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm

답변1

측정한 내용 du과 다르기 때문입니다 .df

man du설명하다:

du - 추정파일 공간 사용량(...) 요약하다파일당 디스크 사용량, 디렉토리 재귀의 경우.

그리고 man df:

df-보고서파일 시스템 디스크 공간 사용량

파일 시스템에는 요약되지 않은 inode 테이블, 로그 등이 있습니다 du. 이는 Linux에만 국한되지 않고 UNIX에만 적용됩니다(UNIX 파일 시스템에만 적용). UNIX 프로세스는 모든 작업(간단화하고 있음), 즉 로그 파일에 쓰는 작업에 파일을 사용하므로열린 파일 설명자이 경우 문제로 인해 다른 du출력이 발생합니다 df.

답변2

이것인덱스 노드테이블(및 몇 가지 아주 작은 것)은 사용된 공간에 포함됩니다. 약 18GB의 inode가 있는 것 같습니다. 이는 ext2/ext3/ext4의 예상 범위 내에 있는 약 6% 공간입니다(다른 것이 없다면 inode 테이블이 없는 파일 시스템은 더 큰 디렉토리 항목을 가질 수 있습니다). 다음을 실행하여 inode에 사용된 정확한 크기를 찾을 수 있습니다 tune2fs -l /dev/mapper/VolGroup00-LogVol00. 예를 들어 다음은 20GB ext3 파일 시스템 중 하나에 대한 관련 행입니다.

Inode count:              2622368
Inode size:               128

이 파티션에는 2622368×128 B ≒ 320MB inode가 있습니다.

추가 참고 사항: 호출 방식에 du따라 원격 마운트 및 기타 비직접 디스크 지원 파일 시스템에서도 각 파일이 사용하는 공간을 볼 수 있습니다. du -x /루트 파일 시스템에 무엇이 저장되어 있는지 확인하려면 실행하세요 .

관련 정보