Mám USB HDD.
Chci jej připojit s povolenou kompresí. Mohu to udělat na fstab svého systému nebo dokonce pomocí pravidel udev. Problém je v tom, že USB HDD nepřipojím pouze k počítači. Doposud jsem spouštěl terminál pokaždé, když jsem jej připojil.
Potom jsem objevil chattr +c. Toto funguje velmi dobře , ale chci použít LZO místo ZLIB. Existuje nějaký způsob být konkrétnější a definovat kompresní algoritmus jednou provždy?
Odpovědět
btrfs komprimuje každý soubor, který byl změněn od jeho připojení pokud používáte:
mount -o compress-force=lzo /dev/btrfsdev /mnt/btrfsmnt
Pokud se chcete postarat o to, aby se takto komprimovaly VŠECHNY soubory, mám k tomu malý skript, který jsem k tomu napsal …
du -ht +$((1024*1024)) "$HOME" |\ sed -rn "s/^[^/]*(.*)/btrfs fi defrag -fvclzo "\1"/p" |\ sudo sh -n
Výše uvedené funguje pouze v mém $HOME adresáři – ale můžete jej použít na cokoli nebo na všechno, jak chcete. Dostal také -n operand přiváděný na sh tak, jak je sami můžete vidět, co sh aktuálně not dělá to před odstraněním, aby mu to řekl.
Mimochodem, nejprve se zeptá du pro soubory ve human-readable formátu (zde je to pravděpodobně nadbytečné, protože je v dalším kroku odstraníme) každopádně) které jsou větší než 1MB nebo $((1024*1024)).
Je |pipes její informace k sed které pásy vypnout vše před hlavním /, "quotes" názvem souboru, vytvoří příkaz btrfs filesystem defragment -verbose -flush-to-disk -compress-lzo \filename a předá |pipe to sudo sh k provedení.
Znovu to nebude nic dělat, dokud sh --no-execute bude v platnosti.
Myslím, že někteří velmi nedávné btrfs sestavení nástroje uživatelského prostoru rekurzivně defragmentuje celé adresáře, ale pokud ano, je to docela nová věc, takže já vždy musel dělat takové věci.
Komentáře
Odpověď
Z toho, co jsem četl, můžete nastavit vlastnost compression v kořenovém adresáři podsvazku na toho dosáhnete [0, 1]:
sudo btrfs property set /mnt/your-subvolume compression lzo
Poté, co uchopíte svůj podtržený UUID Btrfs pomocí sudo btrfs filesystem show /mnt/your-subvolume, můžete ověřte, zda je funkce komprese LZO aktuálně povolena pomocí:
cat /sys/fs/btrfs/<UUID>/features/compress_lzo
Pokud je povolena, měla by vrátit 1.
[0] https://btrfs.wiki.kernel.org/index.php/Compression
[1] https://www.berthon.eu/2016/setting-shared-folder-compression-on-synology-nas-btrfs/
compress=lzoje dostačující, nemusíte ' znovu komprimovat komprimované binární soubory, jako je PNG.