Am un HDD USB.
Vreau să-l montez cu compresia activată. Pot să fac în fstab-ul sistemului meu sau chiar folosind reguli udev. Problema este că nu voi monta HDD-ul USB doar pe computer. Până acum, declanșam un terminal de fiecare dată când îl montam.
Apoi, am descoperit chattr +c. Acest lucru funcționează foarte bine dar Vreau să folosesc LZO în loc de ZLIB. Există vreo modalitate pentru a fi mai specific și a defini algoritmul de compresie o dată pentru totdeauna?
Răspunde
btrfs va comprima fiecare fișier modificat de când a fost montat dacă utilizați:
mount -o compress-force=lzo /dev/btrfsdev /mnt/btrfsmnt
Dacă doriți să vă asigurați că TOATE fișierele sunt comprimate în acest fel, am un mic script pe care l-am scris pentru ao face …
du -ht +$((1024*1024)) "$HOME" |\ sed -rn "s/^[^/]*(.*)/btrfs fi defrag -fvclzo "\1"/p" |\ sudo sh -n
Cele de mai sus funcționează numai în directorul meu $HOME – dar îl puteți folosi în orice sau orice așa doriți. De asemenea, operandul -n a fost alimentat către sh așa cum este așa puteți vedea singur ce este sh în prezent not făcând înainte de a o elimina pentru a-i spune să o facă.
Oricum, mai întâi interogă du pentru fișierele în format human-readable (probabil redundant aici, deoarece îl eliminăm în pasul următor oricum) care sunt mai mari decât 1MB sau $((1024*1024)).
Este |pipes informațiile sale către sed care dezbracă opriți totul înainte de /, "quotes" numele fișierului, construiește comanda btrfs filesystem defragment -verbose -flush-to-disk -compress-lzo \filename și îl predă pe un |pipe către sudo sh pentru a-l executa.
Din nou, nu va face nimic atâta timp cât sh --no-execute este în vigoare.
Cred că unele foarte recent btrfs construirea instrumentului de spațiu pentru utilizatori defragmentează directoare întregi recursiv, dar dacă da, este un lucru destul de nou, așa că am întotdeauna a trebuit să fac lucruri de acest gen.
Comentarii
Răspuns
Din ce am citit, puteți seta proprietatea compression pe rădăcina subvolumului la realizați acest lucru [0, 1]:
sudo btrfs property set /mnt/your-subvolume compression lzo
După ce ați luat UUID-ul subvolum Btrfs cu sudo btrfs filesystem show /mnt/your-subvolume, puteți apoi validați că caracteristica de compresie LZO este activată în prezent cu:
cat /sys/fs/btrfs/<UUID>/features/compress_lzo
Ar trebui să returneze 1 dacă este activată.
[0] https://btrfs.wiki.kernel.org/index.php/Compression
[1] https://www.berthon.eu/2016/setting-shared-folder-compression-on-synology-nas-btrfs/
compress=lzoeste suficient, nu ' nu trebuie să re-comprimați fișierele binare comprimate, cum ar fi PNG.