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=lzo
este suficient, nu ' nu trebuie să re-comprimați fișierele binare comprimate, cum ar fi PNG.