#!/bin/sh -e if [[ $GID != 0 ]]; then echo "need to be root" exit 0; fi MOUNT_DIR=$(mktemp -d) mount $(df --output=source / | tail -n 1) $MOUNT_DIR btrfs subvolume create $MOUNT_DIR/@swap chmod 700 $MOUNT_DIR/\@swap mkdir /swap echo $(df --output=source / | tail -n 1)" /swap btrfs rw,noatime,compress=none,ssd,space_cache,subvol=@swap 0 0" | tee -a /etc/fstab systemctl daemon-reload mount /swap truncate -s 0 /swap/swapfile chattr +C /swap/swapfile # error btrfs property set /swap/swapfile compression none fallocate -l $(free --giga | awk 'NR == 2 {print $2}')G /swap/swapfile chmod 600 /swap/swapfile mkswap /swap/swapfile swapon /swap/swapfile echo "/swap/swapfile none swap defaults 0 0" | tee -a /etc/fstab systemctl daemon-reload umount $MOUNT_DIR rmdir $MOUNT_DIR