![MTD 플래시 장치에서 busybox 및 UBI 파일 시스템을 사용하면 du 및 df 명령이 잘못된 값을 제공합니다.](https://linux55.com/image/107460/MTD%20%ED%94%8C%EB%9E%98%EC%8B%9C%20%EC%9E%A5%EC%B9%98%EC%97%90%EC%84%9C%20busybox%20%EB%B0%8F%20UBI%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%A9%B4%20du%20%EB%B0%8F%20df%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EC%9E%98%EB%AA%BB%EB%90%9C%20%EA%B0%92%EC%9D%84%20%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EB%8B%A4..png)
MTD 파티션에 UBIFS가 설치되어 있으며 크기는 191.9MB입니다.
mtdinfo -a를 실행하면 파티션에 다음이 표시됩니다.
mtd6
Name: data2fs
Type: nor
Eraseblock size: 65536 (64KB)
Amount of Erase Blocks: 3071 (201261056 bytes, 191.9MB)
etc...
그러나 df -h를 실행하면 다음과 같은 결과가 나타납니다.
size used free
ubi2:data2fs 680.2G 20.0K 664.2G
왜 그럴까요? - 내 모든 마운트는 다음과 같습니다(이 질문에 대해 제가 선택한 마운트입니다).
특정 파일 "test.log"의 경우:
- data2fs에서 du -ah를 실행하면 다음과 같은 결과가 나타납니다.
4.0K test.log
- ls -l을 수행하면 다음과 같은 결과가 나옵니다. (
test.log 40 bytes
이것이 실제 값입니다.)
왜 ls가 작동하는지 이해가 안 되지만 du /df는 다른 결과를 제공합니다...
고쳐 쓰다
테스트 결과 stat -f /mnt/data2fs
정답이 나온 것 같습니다.
Block Size: 4096
Total: 43738 (4096 x 43738 = 170.85MB)
Free: 43732
Avail: 42522
이것은 대략적인 예상 수치입니다(UBIFS의 오버헤드가 5~10%이므로 191MB가 아닙니다).