-
- #!/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
-