Minulla on USB-kiintolevy.
Haluan liittää sen niin, että pakkaus on käytössä. Voin tehdä järjestelmän fstabissa tai jopa käyttää udev-sääntöjä. Ongelmana on, että en kiinnittänyt USB-kiintolevyäni vain tietokoneelleni. Tähän asti käytin päätelaitteita joka kerta, kun asennin sen.
Sitten löysin chattr +c. Tämä toimii erittäin hyvin , mutta haluan käyttää LZO: ta ZLIB: n sijaan. Onko mitään keinoa olla tarkempi ja määritellä pakkausalgoritmi lopullisesti?
Vastaa
btrfs pakkaa kaikki tiedostot, jotka on muutettu asennuksen jälkeen jos käytät:
mount -o compress-force=lzo /dev/btrfsdev /mnt/btrfsmnt
Jos haluat varmistaa, että KAIKKI tiedostot pakataan tällä tavalla, minulla on pieni kirjoitusohjelma, jonka kirjoitin tekemään sen …
du -ht +$((1024*1024)) "$HOME" |\ sed -rn "s/^[^/]*(.*)/btrfs fi defrag -fvclzo "\1"/p" |\ sudo sh -n
Ylläoleva toimii vain $HOME -hakemistossa – mutta voit käyttää sitä mihin tahansa tai kaikkeen haluamallasi tavalla. Se sai myös -n -operandin syötetyksi sh niin kuin on näet itse, mikä sh on tällä hetkellä not tekemällä ennen poistamista käskemään sitä tekemään se.
Joka tapauksessa se kysyy ensin du human-readable -muodossa oleville tiedostoille (luultavasti tarpeeton täällä, koska poistamme sen seuraavassa vaiheessa joka tapauksessa) , jotka ovat suurempia kuin 1MB tai $((1024*1024)).
Se |pipes tietonsa sed joka nauhoittaa poista kaikki ennen edeltävää /, "quotes" tiedostonimeä, rakentaa btrfs filesystem defragment -verbose -flush-to-disk -compress-lzo \filename -komennon ja luovuttaa sen |pipe sudo sh suoritettavaksi.
Jälleen kerran se ei tee mitään, kunhan sh --no-execute on kuitenkin voimassa.
Luulen, että jotkut hyvin viimeisimmät btrfs käyttäjätilan työkalurakenteet eheyttävät kokonaiset hakemistot rekursiivisesti, mutta jos näin on, se on melko uusi asia, joten minä piti aina tehdä tällaisia asioita.
Kommentit
vastaus
Luemastani voit asettaa alamäärän juuressa olevan ominaisuuden compression saavuta tämä [0, 1]:
sudo btrfs property set /mnt/your-subvolume compression lzo
Kun olet tarttunut Btrfs-alatilavuuden UUID-tunnisteeseen sudo btrfs filesystem show /mnt/your-subvolume, voit sitten tarkista, että LZO-pakkausominaisuus on tällä hetkellä käytössä:
cat /sys/fs/btrfs/<UUID>/features/compress_lzo
Sen pitäisi palauttaa 1, jos se on käytössä.
[0] https://btrfs.wiki.kernel.org/index.php/Compression
[1] https://www.berthon.eu/2016/setting-shared-folder-compression-on-synology-nas-btrfs/
compress=lzoriittää, sinun ei tarvitse ' pakata pakattuja binaaritiedostoja, kuten PNG.