Это старая версия документа.


Настройка для Ubuntu 13.10 и 14.04

Спящий режим (hibernate) - энергосберегающий режим операционной системы компьютера, позволяющий сохранять содержимое оперативной памяти на энергонезависимое устройство хранения данных (жесткий диск) перед выключением питания. Для поддержки работы данного режима у вас должен присутствовать swap-раздел или (рекомендуется) swap-файл. Рекомендации по созданию swap-раздела смотри здесь. Более удобным в использовании (но сложным при создании) является вариант со swap-файлом (он не занимает отдельный раздел, легко удаляется, легко меняет свой размер).

Создание swap-файла

Про размер swap-файла можете почитать здесь. Создаем файл размером 4 ГБ в корневом каталоге (убедитесь, что у вас хватает свободного места):

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

Даем файлу необходимые права и создаем область подкачки:

sudo chmod 600 /swapfile && sudo mkswap /swapfile

Вручную подключаем файл как swap:

sudo swapoff -a
sudo swapon /swapfile

Дописываем строку в fstab, чтобы наш swap подключался автоматически при запуске системы.

echo "/swapfile swap swap defaults 0 0"| sudo tee -a /etc/fstab.test

Настройка гибернации в swap-файл

Выясняем UUID корневого раздела (с помощью mount узнаем, какой из sda - корень):

mount | grep " / "
sudo blkid

Теперь мы должны указать первый физический блок нашего swap-файла. Узнаем его с помощью swap-offset из пакета uswsusp:

sudo swap-offset /swapfile

Теперь записываем наши параметры в конфиг initramfs:

echo "resume=UUID=<your UUID> resume_offset=<youroffset>" | sudo tee /etc/initramfs-tools/conf.d/resume

И в конфиг GRUB:

sudo nano /etc/default/grub

В строку GRUB_CMDLINE_LINUX_DEFAULT добавляем параметры без кавычек и знаков ><:

resume=UUID=<your UUID> resume_offset=<youroffset>

Не забываем выполнить:

sudo update-grub
sudo update-initramfs -u

Перезагружаемся.

Проверяем работу гибернации через pm-utils:

sudo pm-hibernate

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

echo "SLEEP_MODULE=uswsusp" | sudo tee -a /etc/pm/config.d/module

Опять проверяем (возможно, перед этим потребуется перезагрузка):

sudo pm-hibernate

Если не заработало и сейчас, можете почитать на тему настройки tuxonice.

Теперь осталось активировать кнопку «Спящий режим» в меню выключения.

sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

Находим блоки, посвященные hibernate:

[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

И меняем параметры no на yes.

Перезапускаем иксы и радуемся.

Ссылки