¿Por qué BTRFS cita tan erróneamente el tamaño de los archivos pequeños en mi sistema de archivos?
[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
- Opciones sobre acciones completamente (
defaults
, simplemkfs.btrfs
) - Núcleo de Linux 3.18
- RAID1
Bien, parece que BTRFS está redondeando archivos hasta 1 MB en algún umbral. Ese 1 MB esexactamente1048576 (o 2²⁰) bytes.
Lo más sorprendente cat __init__.py > __init__2.py
es que crea un nuevo archivo del tamaño correcto. ¿Tiene esto algo que ver con el hecho de que creé estos archivos sobre samba?
Los archivos recién creados también tienen el tamaño correcto.
Respuesta1
Resulta simplemente reescribir todos los archivos en el lugar:
find . -type f -exec /usr/bin/echo {} \; -exec sed -i '' {} \;
Redujo correctamente los archivos. No he visto que vuelva a suceder.