Найти строку
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Добавить в неё параметр resume=<swap-раздел>
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=4c38e345-3133-483b-bf6a-9fe3a659840e"
При использовании для подкачки файла, а не раздела, необходимо дополнительно задать параметр resume_offset=<...>. В качестве его значения берётся первое число в колонке physical_offset из вывода команды filefrag -v /swapfile (в примере ниже это 1746944)
# filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 17179869184 (4194304 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 0: 1746944.. 1746944: 1:
1: 1.. 22527: 1746945.. 1769471: 22527: unwritten
Другие способы получения значения для resume_offset
# filefrag -v /swapfile | awk '{ if($1=="0:"){print $4} }'
# swap-offset /swapfile
Добавить
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=4c38e345-3133-483b-bf6a-9fe3a659840e resume_offset=1746944"
Выполнить
update-grub
Для гибернации из командной строки (pm-hibernate у меня ни к чему не приводит)
systemctl hibernate
Для появления в меню оконного менеджера пункта "Спящий режим" создать файл
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes