#!/bin/sh set -e swapfile="/mnt/data/swapfile" # Swap space in 4k blocks swapsize="$(awk '/MemTotal/{ print int($2 * 0.33 / 4) }' /proc/meminfo)" if [ ! -s "${swapfile}" ] || [ "$(stat "${swapfile}" -c '%s')" -lt $((swapsize * 4096)) ]; then # Check free space (in 4k blocks) if [ "$(stat -f /mnt/data -c '%f')" -lt "${swapsize}" ]; then echo "[WARNING] Not enough space to allocate swapfile" exit 1 fi echo "[INFO] Creating swapfile of size $((swapsize *4))k" dd if=/dev/zero of="${swapfile}" bs=4k count="${swapsize}" fi if ! swaplabel "${swapfile}" > /dev/null 2>&1; then /usr/lib/systemd/systemd-makefs swap "${swapfile}" fi