내 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와 같은 다른 명령을 사용해야 합니다.