27 lines
784 B
Bash
Executable File
27 lines
784 B
Bash
Executable File
#!/bin/sh -e
|
|
|
|
if [[ $UID != 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
|