Ubuntu 14.04 гибернация

hibernation-dormouse1

Спящий режим (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

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

Узнайте UUID корневого раздела (с помощью mount можно узнать, какой из разделов является корнем):

mount | grep » / »
sudo blkid

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

sudo swap-offset /swapfile

Запишите ваши параметры в файл настроек initramfs:

echo «resume=UUID= resume_offset=» | sudo tee /etc/initramfs-tools/conf.d/resume

и в конфиг GRUB:

sudo nano /etc/default/grub

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

resume=UUID= resume_offset=

Обновите настройки GRUB и сгенерируйте новый initramfs:

sudo update-grub
sudo update-initramfs -u

Перезагрузитесь.

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

sudo pm-hibernate

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

sudo s2disk

Если у вас все заработало — радуйтесь, если нет — придется конфигурировать uswsusp:

sudo dpkg-reconfigure -pmedium uswsusp

На вопрос «Продолжить без работоспособного пространства подкачки?» в случае использования swap-файла отвечаем «Да», пространство подкачки в диалоге указываем по UUID (/dev/disk/by-uuid/), раздел не шифруем. После этого автоматически будет сформирован uswsusp.conf с необходимыми параметрами. Пробуем опять:

sudo s2disk

Если заработало, заменяем вызов pm-hibernate на s2disk:

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

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

sudo pm-hibernate

Если не заработало с uswsusp, можете опробовать TuxOnIce.

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

Измените настройки policitykit:

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

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

Перезапустите X-сервер.