Не работает гибернция, Ubuntu

Включил гибернацию в Ubuntu 20.04, но при нажатии на кнопку Hibernate в меню происходит что то типо Lock, тоже самое происходит при команде sudo systemctl hibernate. В результате команды sudo pm-hibernate просто выключается и включается экран. Как можно поправить данную ситуацию?

В файле /etc/default/grub прописано

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/nvme0n1p2"


Ответы (1 шт):

Автор решения: Георгий Морочев

Как подсказали в комментариях: спищий режим

Я настраивал через swap раздел.

  1. Запишите ваши параметры в файл настроек initramfs echo "resume=UUID=<UUID> resume_offset=<offset>" | sudo tee /etc/initramfs-tools/conf.d/resume

В gparted можно найти UUID и offset (First sector)

  1. и в конфиг GRUB sudo nano /etc/default/grub
 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<UUID> resume_offset=<offset>"
  1. Обновите настройки GRUB и сгенерируйте новый initramfs:
sudo update-grub
sudo update-initramfs -u
  1. Перезагружаем

  2. Проверьте работу гибернации с помощью команды pm-hibernate из пакета pm-utils sudo pm-hibernate

  3. Если у вас все работает - переходите к следующему пункту. Если нет — воспользуйтесь утилитой uswsusp sudo s2disk

  4. Если у вас все заработало - радуйтесь, если нет - придется конфигурировать uswsusp sudo dpkg-reconfigure -pmedium uswsusp

  5. Если заработало, заменяем вызов pm-hibernate на s2disk: echo "SLEEP_MODULE=uswsusp" | sudo tee -a /etc/pm/config.d/module

Если гибернация заработала, то остается только активировать кнопку «Спящий режим» в меню выключения. Для этого:

Измените настройки policitykit sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

В блоке:

[Disable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=no
 
[Disable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=no

Замените измените в них параметр ResultActive с no на yes.

Если гибернация работает по вызову pm-hibernate, но не работает по кнопке «Спящий режим» в меню выключения, то, возможно, проблема в том, что эта кнопка вызывает команду systemctl hibernate, которая по умолчанию не поддерживает uswsusp

sudo cp /lib/systemd/system/systemd-hibernate.service /etc/systemd/system/
sudo nano /etc/systemd/system/systemd-hibernate.service

Заменяем

ExecStart=/lib/systemd/systemd-sleep hibernate

на

ExecStart=/bin/sh -c 's2disk && run-parts --regex .\* -a post /lib/systemd/system-sleep'
→ Ссылка