#!/bin/bash systemctl stop btrfs-scrub@-.timer systemctl stop snapper-cleanup.timer systemctl stop snapper-timeline.timer mount -o noatime,compress=lzo,autodefrag /dev/mapper/cryptroot /home/niko/nosnap/rootfs/ cd /home/niko/nosnap rm ro_snapshots 2> /dev/null for snapshot in $(btrfs subvolume list -p /home/niko/nosnap/rootfs | awk '{ print $11 }'); do ro=$(btrfs property get -ts /home/niko/nosnap/rootfs/${snapshot} | awk -F "=" '{print $2}'); if [ "${ro}" == "true" ]; then echo ${snapshot}": "${ro}; echo ${snapshot} >> ro_snapshots; btrfs property set -ts /home/niko/nosnap/rootfs/${snapshot} ro false; echo "Set to: "$(btrfs property get -ts /home/niko/nosnap/rootfs/${snapshot} | awk -F "=" '{print $2}'); fi; done rm rootfs.hash 2> /dev/null btrfs filesystem usage /home/niko/nosnap/rootfs/ > before_balance btrfs balance start /home/niko/nosnap/rootfs/ --full-balance btrfs filesystem usage /home/niko/nosnap/rootfs/ > after_balance time duperemove -drh --dedupe-options=noblock --hashfile=/home/niko/nosnap/rootfs.hash /home/niko/nosnap/rootfs/ 2> duperemove.err #time duperemove -drh --hashfile=/home/niko/nosnap/rootfs.hash /home/niko/nosnap/rootfs/ 2> duperemove.err rm rootfs.hash 2> /dev/null btrfs filesystem usage /home/niko/nosnap/rootfs/ > after_duperemove btrfs balance start /home/niko/nosnap/rootfs/ --full-balance btrfs filesystem usage /home/niko/nosnap/rootfs/ > after_duperemove_and_balance for snapshot in $(cat ro_snapshots); do btrfs property set -ts /home/niko/nosnap/rootfs/${snapshot} ro true; done rm ro_snapshots 2> /dev/null umount rootfs/ systemctl start btrfs-scrub@-.timer systemctl start snapper-cleanup.timer systemctl start snapper-timeline.timer