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=lzo
riittää, sinun ei tarvitse ' pakata pakattuja binaaritiedostoja, kuten PNG.