BTRFS가 내 파일 시스템의 작은 파일 크기를 그렇게 심하게 잘못 인용하는 이유는 무엇입니까?
[pi@rpi scipy]% cat __init__.py | wc -c # literal byte count
4729
[pi@rpi scipy]% du --apparent-size -h __init__.py # size on filesystem (same)
4.7K __init__.py
[pi@rpi scipy]% du -h __init__.py # reported size to ls
1.0M __init__.py
- 완전 스톡 옵션(
defaults
, 일반mkfs.btrfs
) - 리눅스 커널 3.18
- RAID1
좋아요, BTRFS가 일부 임계값에서 파일을 1MB까지 반올림하는 것으로 보입니다. 그 1MB는정확히1048576(또는 2²⁰)바이트.
더 놀라운 것은 cat __init__.py > __init__2.py
올바른 크기의 새 파일을 만드는 것입니다. 이것이 내가 삼바를 통해 이러한 파일을 생성했다는 사실과 관련이 있습니까?
새로 생성된 파일의 크기도 정확합니다.
답변1
모든 파일을 그 자리에서 다시 작성하는 것으로 나타났습니다.
find . -type f -exec /usr/bin/echo {} \; -exec sed -i '' {} \;
파일을 올바르게 축소했습니다. 나는 그런 일이 다시 일어나는 것을 보지 못했습니다.