Не шифрованный файл подкачки - открытая дверь в вашу систему.
Шифровать своп значительно менее затратно, чем весь диск, значительная часть которого занята данными имеющимися в открытом доступе.
Всё таки шифрование отнимает некоторое количество ресурсов системы.

Сначала вам нужно
       разобраться с gpg (ArchWiki) чтобы создать ключи для шифрования.
        настроить получение почты, опционально с проверкой подписи. чтобы не печатать руками все эти тексты.

Текст далее я где-то откопал. Не проверял. Возможно он не совсем правильный.
Скачать это. разделённое на готовые файлы    swap+gpg.zip

#!/bin/bash
# /usr/local/sbin/swapfile
# Создать конфиг /usr/local/etc/conf.d/swapfile
#
# # Размер файла подкачки 512M
# SWPS=512
# # Имя файла подкачки
# SWPN='swapfile'
# # Путь к файлу подкачки
# SWPP='/'
# # Модуль шифрования
# CIPHERM='aes'
# # Метод шифрования
# CIPHER='aes-cbc-essiv:sha256'
# # Длина ключа
# KEYSIZE=256
# Создать юнит /usr/local/lib/systemd/system/swapfile.service
#
# [Unit]
# Description=Run crypt SWAP file
# Wants=swap.target
# Before=swap.target
# ConditionFileIsExecutable=/usr/local/sbin/swapfile
#
# [Service]
# Type=oneshot
# RemainAfterExit=yes
# ExecStart=/usr/local/sbin/swapfile start
# ExecStop=/usr/local/sbin/swapfile stop
#
# [Install]
# WantedBy=swap.target
# Делаем исполняемым!!!
# chmod +x /usr/local/sbin/swapfile
# Подключение для initscripts
# добавить в /etc/rc.local
#
# swapfile start
#
# и добавить в /etc/rc.local.shutdown
#
# swapfile stop
# Подключение для systemd выполнить
#
# systemctl enable swapfile.service
. /usr/local/etc/conf.d/swapfile
SWPF=$SWPP$SWPN
DM='/dev/mapper/'
EALL=$(gettext 'crypt SWAP')' '$(gettext 'file')
ESTART=$(gettext 'Start')' '$EALL
ESTOP=$(gettext 'Stop')' '$EALL
ECREATE=$(gettext 'Create')' '$EALL
EDELETE=$(gettext 'Delete')' '$EALL
ELIST=$(gettext 'List')' '$EALL
EONOFF=$(gettext 'On|Off')' '$EALL
swpfile() {
    if [ -f $SWPF ]; then
        return 0
    fi
    return 1
}
swpdev() {
    if [ -n "$(swapon -s | grep $DM$SWPN)" ]; then
        return 0
    fi
    return 1
}
modl() {
    if [ -n "$(lsmod | grep $1)" ]; then
        return 0
    fi
    return 1
}
start() {
    if swpdev ; then
        return
    fi
    if [ ! -f $SWPF ]; then
        create
    fi
    if ! modl 'loop' ; then
        modprobe loop
    fi
    if ! modl $CIPHERM ; then
        modprobe $CIPHERM
    fi
    echo $ESTART
    cryptsetup --key-file=/dev/urandom -c $CIPHER -s $KEYSIZE create $SWPN $(losetup -f --show $SWPF)
    mkswap -f $DM$SWPN
    swapon $DM$SWPN
}
stop() {
    if ! swpdev ; then
        return
    fi
    echo $ESTOP
    swapoff $DM$SWPN
    sleep 1
    cryptsetup remove $SWPN
    sleep 1
    losetup -d $(losetup -j $SWPF | cut -d ':' -f1)
}
create() {
    if swpfile ; then
        return
    fi
    echo $ECREATE
    fallocate -l "$SWPS"M $SWPF
    dd if=/dev/urandom of=$SWPF bs=1M count=$SWPS
}
delete() {
    if ! swpfile ; then
        return
    fi
    stop
    echo $EDELETE
    rm $SWPF
}
list() {
    echo $ELIST
    swapon -s | grep $DM
}
onoff() {
    echo $EONOFF
    if swpdev ; then
        stop
    else
        start
    fi
}
case "$1" in
start)
    start
  ;;
stop)
    stop
  ;;
create)
    create
  ;;
delete)
    delete
  ;;
list)
    list
  ;;
--help)
    echo $(gettext 'Commands')':'
    echo 'start         - '$ESTART
    echo 'stop          - '$ESTOP
    echo 'create        - '$ECREATE
    echo 'delete        - '$EDELETE
    echo 'list          - '$ELIST
    echo 'onoff         - ('$(gettext 'default')') '$EONOFF
  ;;
*)
    onoff
  ;;
esac
exit 0

спасибо автору . к сожалению я не помню где откопал это.