Алгоритм почти такой же, как и для [[https://www.opennet.dev/tips/3178_opensuse_sleep_suspend_swap... openSUSE]], но небольшие отличия все-таки есть. Итак, создаём файл подкачки. Я решил разместить его в каталоге []/var/lib/swap[]. Создаём каталог и закрываем к нему доступ всем, кроме root: sudo mkdir -p /var/lib/swap
sudo chmod 700 /var/lib/swap
Создаём файл, который будет использоваться как файл подкачки (у меня он будет размером 11 Гб), и закрываем к нему доступ всем, кроме root:
sudo fallocate -l 11G /var/lib/swap/swapfile
sudo chmod 600 /var/lib/swap/swapfile
Настраиваем и активируем файл подкачки:
sudo mkswap /var/lib/swap/swapfile
sudo swapon /var/lib/swap/swapfile
Чтобы файл подкачки автоматически монтировался во время загрузки, необходимо прописать его в []/etc/fstab[]. []Не забываем делать резервные копии системных файлов, которые планируем редактировать![]:
/var/lib/swap/swapfile none swap defaults 0 0
Теперь нам необходимо установить пакеты []pm-utils[] и []hibernate[]:
sudo apt install pm-utils hibernate
Далее нам нужно указать в grub, откуда система должна загружать данные после выхода из режима гибернации. Нам нужно узнать:
1. ID раздела, на котором находится файл подкачки
2. физическое смещение файла подкачки на этом разделе.
ID раздела мы можем найти в том же []/etc/fstab[]. У меня этот ID равен b92afe00-6cc9-4231-a03e-282bc6a560ef:
cat /etc/fstab
UUID=b92afe00-6cc9-4231-a03e-282bc6a560ef / ext4 defaults 0 1
Смещение находим с помощью команды []swap-offset[], у меня это значение равно 317440:
sudo swap-offset /var/lib/swap/swapfile
resume offset = 317440
Записываем полученные данные в файл []/etc/default/grub[]. Находим параметр []GRUB_CMDLINE_LINUX_DEFAULT[] и добавляем к нему запись вида []resume=UUID=<UUID> resume_offset=<offset>[]. У меня это выглядит так:
GRUB_CMDLINE_LINUX_DEFAULT="splash=silent mitigations=auto quiet resume=UUID=b92afe00-6cc9-4231-a03e-282bc6a560ef resume_offset=317440"
Далее необходимо обновить файл конфигурации grub:
sudo update-grub
Гибернация уже должна работать, это можно проверить с помощью команды []systemctl hibernate[]. Единственное, чего нам не хватает - возможности перехода в режим гибернации из пользовательского интерфейса. Чтобы это исправить, нам нужно создать файл []/etc/polkit-1/localauthority/50-local.d/99-hibernate.pkla[] с таким содержимым:
[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Enable hibernate 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
Перезагружаемся и проверяем работу режима гибернации.
URL:
Обсуждается: http://www.opennet.dev/tips/info/3181.shtml