BTRFS-Größe auf der Festplatte 200x größer als die tatsächliche Größe

BTRFS-Größe auf der Festplatte 200x größer als die tatsächliche Größe

Warum gibt BTRFS die Größe kleiner Dateien in meinem Dateisystem so falsch an?

[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
  • Komplett Aktienoptionen ( defaults, schlicht mkfs.btrfs)
  • Linux Kernel 3.18
  • RAID-1-Konfiguration

Okay, es scheint also, dass BTRFS Dateien ab einem bestimmten Schwellenwert auf 1 MB aufrundet. Dieses 1 MB istgenau1048576 (oder 2²⁰) Bytes.

Noch überraschender ist, cat __init__.py > __init__2.pydass eine neue Datei mit der richtigen Größe erstellt wird. Hat das etwas damit zu tun, dass ich diese Dateien über Samba erstellt habe?

Auch neu erstellte Dateien haben die richtige Größe.

Antwort1

Es stellt sich heraus, dass es ausreicht, alle Dateien direkt vor Ort neu zu schreiben:

find . -type f -exec /usr/bin/echo {} \; -exec sed -i '' {} \;

Die Dateien wurden korrekt verkleinert. Ich habe nicht gesehen, dass es noch einmal passiert ist.

verwandte Informationen