#!/usr/bin/env bash # -x = show every command executed # -e = abort on failure set -xe main() { # :: swap :: # swapoff /swap/swapfile || true truncate -s 0 /swap/swapfile chattr +C /swap/swapfile btrfs property set /swap/swapfile compression none dd if=/dev/zero of=/swap/swapfile bs=1M count=8000 status=progress chmod 600 /swap/swapfile mkswap /swap/swapfile swapon /swap/swapfile # :: btrfs_map_physical :: # wget https://raw.githubusercontent.com/osandov/osandov-linux/master/scripts/btrfs_map_physical.c gcc -O2 -o btrfs_map_physical btrfs_map_physical.c # :: edit grub :: # offset=$(./btrfs_map_physical /swap/swapfile) offset_arr=($(echo ${offset})) offset_pagesize=($(getconf PAGESIZE)) offset=$((offset_arr[25] / offset_pagesize)) btrfsonluks=`sudo blkid -o device | grep luks` sed -i "s#loglevel=3#resume=$btrfsonluks loglevel=3#" /etc/default/grub sed -i "s/loglevel=3/resume_offset=$offset loglevel=3/" /etc/default/grub sed -i 's/keymap consolefont encrypt filesystems/keymap consolefont encrypt filesystems resume/' /etc/mkinitcpio.conf # :: remake images :: # grub-mkconfig -o /boot/grub/grub.cfg mkinitcpio -P # :: cleanup :: # rm -f btrfs_map_physical.c rm -f btrfs_map_physical echo 'All done, please reboot!' } main "$@"