df 명령이 잘못된 사용법을 보고합니다.

df 명령이 잘못된 사용법을 보고합니다.

내 eMMC 장치에는 df -h 명령의 다음 출력을 보고하는 파티션이 있습니다.

Filesystem       Size  Used Avail Use% Mounted on
/dev/mmcblk2p3    16Z   16Z   84M 100% /data

하지만 파티션 크기는 100MB입니다! 파티션 형식은 ext4입니다. 위에 표시된 대로 출력에는 사용된 공간에 대한 막대한 값이 보고됩니다. 실제로 파티션은 약 5MB만 사용하지만 어떤 이유로 df는 엄청난 값을 보고합니다. du -sh 명령을 통해 파티션에서 사용되는 크기를 확인하면 다음과 같이 보고됩니다.

#du -sh
5.8MB

또한 une2fs 명령을 통해 출력을 확인했는데 얻은 결과는 다음과 같습니다.

Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              25688
Block count:              102400
Reserved block count:     5120
Overhead blocks:        50343939
Free blocks:              87634
Free inodes:              25190
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Fragments per group:      8192
Inodes per group:         1976
Inode blocks per group:   247
Flex block group size:    16
Filesystem created:       Thu Nov 21 06:38:03 2019
Last mount time:          Thu Mar 10 13:20:58 2022
Last write time:          Thu Mar 10 13:20:58 2022
Mount count:              31
Maximum mount count:      -1
Last checked:             Sat Jan 22 08:17:33 2022
Check interval:           0 (<none>)
Lifetime writes:          604 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8

오버헤드 블록이 무엇인지, 왜 오버헤드 블록에 큰 숫자가 표시되는지 아시나요? df 명령의 출력에는 100% 사용량이 표시되지만 여전히 파티션에 파일을 생성할 수 있습니다. df 명령이 100% 사용량이 아닌 올바른 값을 반환하는지 확인하는 방법이나 une2fs에 나열된 "오버헤드 블록"을 지우는 방법에 대해 알고 계시나요?

내 스크립트는 파티션의 사용량 비율을 확인하고 사용량이 70%를 초과하면 파일을 삭제합니다. df 명령은 항상 100% 사용량을 표시하므로 항상 모든 파일을 삭제합니다. df 명령이 사용하기에 적합한지 알려주십시오. 아니면 du와 같은 다른 명령을 사용해야 합니다.

관련 정보