Гибернация - это особый вид спящего режима Ubuntu, во время которого все открытые программы, документы, файлы, и вообще, все содержимое оперативной памяти не стирается, а переносится на раздел подкачки. После этого компьютер полностью выключается, как и при обычном выключении. Затем при включении, оперативная память восстанавливает свое состояние из раздела подкачки. Это работает быстрее обычной загрузки, ну и все нужные вам программы будут уже открыты.
По умолчанию в Ubuntu функция гибернации отключена, но вы можете использовать специальную команду из терминала для этой же цели. В этой статье мы рассмотрим как включить гибернацию Ubuntu 16.04 или 16.10.
Содержание статьи
Проверка гибернации
Перед тем как переходить непосредственно к изменениям параметров системы, давайте проверим работает ли вообще гибернация в вашем дистрибутиве Ubuntu. Убедитесь что вы сохранили все важные данные, на случай если что-то пойдет не так и система не сможет восстановиться в прежнее состояние при включении компьютера.
Для проверки сначала откройте терминал с помощью сочетания клавиш Ctrl+Alt+T, затем выполните команду
sudo systemctl hibernate
Затем, когда компьютер полностью выключится, включите его снова. Если после загрузки все ваши приложения будут снова открыты, а сама загрузка будет выполнена очень быстро, значит, гибернация Ubuntu работает, в противном случае - нет.
Если гибернация не работает убедитесь, что ваше ядро поддерживает гибернацию. Для этого посмотрите содержимое файла:
cat /sys/power/state
Вы должны увидеть слово disk. Это и будет означать, что гибернация поддерживается. Далее убедитесь, что размер вашего раздела подкачки не меньше размера оперативной памяти. В идеале, вообще нужно брать больше, на случай если некоторые страницы уже находятся в swap. Посмотреть объем оперативной памяти можно командой:
free -h
А информацию о разделе подкачки такой командой:
swapon --show
Обратите внимание, что вам нужен именно раздел подкачки. В современных версиях Ubuntu используется файл подкачки. Для файла гибернацию тоже можно попытаться настроить, но она и с разделом то не очень работает, с файлом будет ещё сложнее, поэтому лучше сделать раздел. Если вы создали новый раздел, то файл надо отключить:
sudo swapoff /swapfile
И подключить новый раздел:
sudo swapon /dev/sda6
Затем надо обновить запись в /etc/fstab. Вместо /swapfile надо прописать имя раздела, например, /dev/sda6:
Также убедитесь, что вы не используете разделов с файловой системой btrfs. Разделы нужно конвертировать, а пакет btrfs-tools нужно удалить с помощью такой команды:
sudo apt purge btrfs-tools
Гибернация Ubuntu не будет работать с Btrfs, вообще. И последнее, убедитесь, что в строке загрузки ядра есть опция resume=/dev/раздел_подкачки. Именно она указывает ядру, что нужно восстанавливать память из раздела жесткого диска. Если такой опции нет, добавьте ее, открыв файл /etc/default/grub и добавив туда строчку:
sudo vi /etc/default/grub
Здесь /dev/sda6 - имя вашего раздела подкачки, на который будет сохраняться содержимое оперативной памяти. Потом надо обновить параметры загрузчика Grub:
sudo update-grub
И перегенерировать образ initramfs:
sudo update-initramfs -u -k all
Дальше вы можете выполнить проверку еще раз. На этот раз гибернация Ubuntu должна работать как нужно.
Включить гибернацию в Ubuntu
Мы разобрались как проверить работает ли гибернация и вы можете использовать команду systemctl hibernate. Но теперь давайте рассмотрим как добавить опции гибернации в меню выключения и назначить этот вариант для использования по умолчанию. Для этого достаточно установить расширение Gnome - Hibernate Status Button:
После этого соответствующие кнопки появятся в меню выключения компьютера:
Выводы
Теперь вы знаете как включить гибернацию Ubuntu. Это очень просто, но в то же время будет очень полезно, поскольку запуск компьютера будет в разы быстрее, а после старта вы получите все ранее запущенные программы. Но будьте осторожны и сохраняйте данные, чтобы ничего не потерять. Если у вас остались вопросы, спрашивайте в комментариях!
Намного быстрее будет работать система на SSD, загрузка будет настолько быстрой, что вам даже не понадобится гибернация, на завершение предлагаю видео о том, как выбрать SSD для Linux:
А что такое suspend тогда? В чем разница?
susped - когда данные остаются в оперативной памяти, и на нее подается питание. Здесь данные записаны на диск, и компьютер полностью выключен.
Злоупотребление режимом гибернации на SSD приведет к ускоренному выходу его из строя, так как эти диски имеют значительно меньший ресурс перезаписи по сравнению с обычными жесткими дисками. Иногда даже можно встретить рекомендации наоборот отключать режим гибернации для SSD чтобы продлить срок его службы.
у современных hdd срок уже не такой большой как раньше, а порой даже меньше чем у ssd, которых по заявкам производителя хватает на 4-7 лет для обычного пользователя, в отличии от hdd, которые максимум 4, и то скрипя.
тем более такие ОС как Win 8, 10 работают за счет гибернации, правда закрывают все приложения, чтобы уменьшить объем занимаемого пространства.
данный режим очень полезен на ноутбуках, особенно когда садиться батарея, а ноут в спячку до полного разряда... в таком моменте лучше в гибернацию, чтобы при зарядке благополучно восстановиться.
Ещё видимо надо указать, что размер раздела swap в этом случае должен быть: - объём ОЗУх2.
Например: 4Гб ОЗУ = swap должен быть 8Гб.
Не знаю, как в 2016м, но в 2024м достаточно равенства размера раздела swap объёму ОЗУ
Здравствуйте. После добавления в файл grub в строчку GRUB_CMDLINE_LINUX_DEFAULT своего раздела подкачки и обновлении grub командой sudo update-grub все равно в раздел подкачки ничего не скидывается. После использования команды sudo pm-hibernate запущенные программы не восстанавливаются. Подскажите что может быть не так?
Создайте файл... Он у меня уже был и в нем много чего написано было...
В общем, для тех у кого файл не пустой, добавлять ничего не нужно, а только изменить строчки с "no" на "yes" в параметрах о гибернации... У меня это 39 и 44 строчки.. Я бы выложил скрин, но нельзя в комментарии... И появится в меню выключения "Спящий режим". Это и есть гибернация...
Рекомендую не заморачиваться со свопом.
Решается просто:
$ sudo apt-get install swapspace
Проверяем:
$ sudo pm-hibernate
И вуаля! гибернация заработала!
непонятки с бтрфс, только что установил 16.04.2, вбил - sudo pm-hibernate, комп выключился, включил - все программы остались как были - открытыми
забыл добавить что диск был btrfs
Не могли бы вы мне помочь найти решение проблемы?
Выпуск Linux Mint 19.1 Tessa 32-разрядный, Ядро Linux 4.18.0-18-generic i686, MATE 1.20.1.
В гибернацию на ядре 4.4.0-45 она уходит и возвращается нормально, а на 4.18.0-18, тоже уходит, но при возвращении утыкается в какую-то ошибку и перезагружается. Где рыть, подскажите?
вы о чем? можно подробнее что там с файлом делать
автор, а если "Если вы создали новый раздел,.." этого нет? не помешало бы уточнить
Если гибернация не работает убедитесь, что ваше ядро поддерживает гибернацию. Для этого посмотрите содержимое файла:
cat /sys/power/state
Вы должны увидеть слово disk. Это и будет означать, что гибернация поддерживается.
В моем случае слова disk нету, и что делать то?
need to turn off fast boot and secure boot in bios
Огромное спасибо автору статьи! Bootsplash Manager устроил мне подлянку, переписав строки в файле Grub'а, но теперь всё стало на место, спящий режим заработал
OS: Linux Mint 21.1.
Действительно, с файлом подкачки гибернация не работает по вышеописанной инструкции. Выделил раздел на ЖД и совершилось чудо! Спасибо.