Jai un disque dur USB.
Je veux le monter avec la compression activée. Je peux le faire dans le fstab de mon système ou même en utilisant les règles udev. Le problème est que je ne vais pas monter mon disque dur USB uniquement sur mon ordinateur. Jusquà présent, je déclenchais un terminal à chaque fois que je le montais.
Ensuite, jai découvert chattr +c
. Cela fonctionne très bien mais Je souhaite utiliser LZO au lieu de ZLIB. Existe-t-il un moyen pour être plus précis et définir lalgorithme de compression une fois pour toutes?
Réponse
btrfs compressera chaque fichier modifié depuis son montage si vous utilisez:
mount -o compress-force=lzo /dev/btrfsdev /mnt/btrfsmnt
Si vous voulez voir à ce que TOUS les fichiers soient compressés de cette façon, jai un petit script que jai écrit pour le faire …
du -ht +$((1024*1024)) "$HOME" |\ sed -rn "s/^[^/]*(.*)/btrfs fi defrag -fvclzo "\1"/p" |\ sudo sh -n
Ce qui précède ne fonctionne que sur mon répertoire $HOME
– mais vous pouvez lutiliser sur nimporte quoi ou sur tout comme vous le souhaitez. L’opérande -n
est également transmis à sh
tel quel vous pouvez voir par vous-même ce que sh
est actuellement not
faire avant de le supprimer pour lui dire de le faire.
Quoi quil en soit, il interroge dabord du
pour les fichiers au format human-readable
(probablement redondant ici puisque nous le supprimons à létape suivante de toute façon) qui sont plus grands que 1MB
ou $((1024*1024)).
Il |pipes
ses informations à sed
qui supprime tout ce qui précède la /, "quotes"
nom de fichier, crée la commande btrfs filesystem defragment -verbose -flush-to-disk -compress-lzo \filename
et le remet un |pipe
à sudo sh
pour lexécuter.
Encore une fois, il « ne fera rien tant que sh --no-execute
est en vigueur.
Je pense que certains les versions très récentes de l’outil de l’espace utilisateur btrfs
défragmentent des répertoires entiers de manière récursive, mais si cest le cas, c’est une chose assez nouvelle, donc je il fallait toujours faire des choses comme ça.
Commentaires
Réponse
Daprès ce que jai lu, vous pouvez définir la propriété compression
à la racine du sous-volume sur atteindre ceci [0, 1]:
sudo btrfs property set /mnt/your-subvolume compression lzo
Après avoir récupéré votre UUID de sous-volume Btrfs avec sudo btrfs filesystem show /mnt/your-subvolume
, vous pouvez alors valider que la fonction de compression LZO est actuellement activée avec:
cat /sys/fs/btrfs/<UUID>/features/compress_lzo
Elle devrait renvoyer 1 si elle est activée.
[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
est suffisant, vous navez ' pas besoin de recompresser les fichiers binaires compressés comme PNG.