Onko BTRFS: ssä mitään tapaa asettaa pakkaus pysyvästi?

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

  • Tuo ' on erittäin mukava vastaus. Tätä tein kuitenkin jo (tämän tarkoitin " tähän asti, ennen kuin käytin päätelaitteen joka kerta, kun asennin sen. "). ' Haluan tietää, onko olemassa mitään tapaa liittää oletusasennusliput FS: ään. Mikäli sinulla ' ei ole juurta, mikään näistä ei toimi.
  • Oletusasennuskohdat? No, voit varmasti käyttää fstabia. Ja btrfs: n avulla voit asentaa myös alatilavuuden mukaan, joten voit liittää, kuten sanot, alatilavuuden tiettyihin kiinnitysvaihtoehtoihin ja vaihtoehtoan user = mount, voit antaa sen käyttäjälle. Saatat ihmetellä – mutta miten voin tehdä alatilavuuden jo olevista tiedostoista? Jos luot tyhjän alatilavuuden, cp – huuhtele uudelleen kaikki haluamasi siinä, jonka pitäisi tehdä työ.
  • Myös yllä oleva eheystyö voi olla cron-työ …
  • compress=lzo riittää, sinun ei tarvitse ' pakata pakattuja binaaritiedostoja, kuten PNG.

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/

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *