Как включить спящий режим в Ubuntu 12.04 LTS?

Хорошая штука этот спящий режим, иначе hibernate. Постоянно пользовался им на ноуте, так как аккумулятор уже никакой, контроллер тоже барахлит, поэтому на ждущий режим может не хватить энергии. А спящий, хоть и чуть дольше срабатывает (системе надо сбросить всю оперативную память в swap), но зато при включении не надо вспоминать, что я делал и какие программы у меня были открыты.

Однако в Ubuntu 12.04, Precise Pangolin, режим hibernate по умолчанию отключён. Связано это с тем, что спящий режим некорректно работает с некоторым железом, да и без swap-раздела он бесполезен. Ну, swap у меня всегда есть, при установке системы я винт всегда разбиваю вручную и сам определяю разделы.

Встаёт вопрос — можно ли вернуть режим hibernate и если можно, то как? Для начала надо убедиться, что swap-раздел у нас есть. В консоли вводим команду sudo fdisk -l и видим:

Диск /dev/sda: 40.0 ГБ, 40020664320 байт
255 heads, 63 sectors/track, 4865 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029ae8
Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1            4744        4866      975872   82  Linux своп / Solaris
/dev/sda2   *           1        4744    38105088   83  Linux

Собственно, в данном случае раздел /dev/sda1 — это и есть наш swap. У вас буква и цифра могут быть другими. Если же у вас такого раздела не нашлось, то рекомендую воспользоваться редактором разделов GParted. Её можно найти в репозитории. Однако, надо заметить, что при изменении размеров и перемещении разделов можно потерять данные. Будьте внимательны!

Теперь, когда мы убедились в том, что swap-раздел у нас есть, надо проверить работу режима hibernate. В консоли вводим команду sudo pm-hibernate и смотрим, что получится. Теоретически, если swap у нас равен размеру ОЗУ или больше, то комп должен благополучно «заснуть», а потом «проснуться» по кнопке питания.

Если всё так хорошо, как мы ожидали, то приступаем к окончательному этапу. Необходимо создать файл /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla (для этого требуются права root) и внести в него следующие строки:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

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