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=lzo
je dostačující, nemusíte ' znovu komprimovat komprimované binární soubory, jako je PNG.