Спящий режим Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:спящий_режим [2014/05/07 13:31]
[Настройка гибернации в swap-файл]
wiki:спящий_режим [2019/06/28 00:20] (текущий)
[Настройка]
Строка 1: Строка 1:
 ====== Спящий режим ====== ====== Спящий режим ======
-===== Настройка ​для Ubuntu 13.10 и 14.04 ===== +<note important>​В 2017 году часть информации из данной статьи устарела. Скорее всего, наиболее простым и стабильным в работе ​является [[TuxOnIce]],​ прочие методы нужно проверить и скорректировать статью</​note>​ 
-Спящий режим ([[wpru>​Гибернация_(операционные_системы)|hibernate]]) -- энергосберегающий режим операционной системы компьютера,​ позволяющий сохранять содержимое оперативной памяти на энергонезависимое устройство хранения данных (жесткий диск) перед выключением питания. +===== Что это и как это работает? ​===== 
-Для поддержки работы данного режима у вас должен присутствовать [[swap]]-раздел или (рекомендуется) swap-файл. +Спящий режим ([[wpru>​Гибернация_(операционные_системы)|hibernate]]) -- энергосберегающий режим операционной системы компьютера,​ позволяющий сохранять содержимое оперативной памяти на энергонезависимое устройство хранения данных (жесткий диск) перед выключением питания.\\ 
-Рекомендации по созданию swap-раздела смотри [[руководство_по_ubuntu_desktop_14_04|здесь]]. +При засыпании все данные процессов вытесняются в swap файл, а также в swap сохраняются некоторые настройки устройств,​ и после этого система переходит в режим с полным отключением питания.\\ 
-Более удобным в использовании (но сложным при создании) ​является вариант со swap-файлом (он не занимает отдельный раздел,​ легко удаляется,​ легко меняет свой размер).+При включении компьютера система начинает загружаться как обычно,​ но если в процессе загрузки ядро обнаруживает образ памяти сохраненный в swap, то загрузка в нормальном режиме прекращается и начинается восстановление состояния оперативной памяти из swap-а. Кроме этого восстанавливаются настройки устройств (видеоадаптер,​ сетевые карты, и пр.).\\ 
 +И вот именно с восстановлением работоспособности устройств компьютера и связаны все основные проблемы с режимом сна. Не всегда драйвера устройств позволяют осуществить необходимые действия по сохранению и восстановление настроек после сна. И это может приводить к зависанию компьютера после попытки проснуться.\\ ​   
 +Еще одна неприятность этого режима проявляется при больших объемах оперативной запоминающей памяти компьютера. Речь идет об объемах оперативной памяти от 8Gb и выше (что в последние годы встречается все чаще). Если памяти много, то и много придется сохранять в swap при засыпании и соответственно вычитывать из swap при просыпании. Из за этого засыпание и просыпания могут занять довольно значительное время. Может оказаться,​ что вам проще и гораздо быстрее все-таки сохранить свою работу и выключить нормально компьютер,​ а потом, после обычной загрузки,​ открыть свои рабочие файлы заново.\\ 
 +Именно из-за озвученных выше особенностей режима сна в последних версиях Ubuntu по умолчанию этот режим энергосбережения отключен. ​  
 + 
 +===== Настройка===== 
 +Для поддержки работы данного режима у вас должен присутствовать [[swap|swap-раздел]] или (рекомендуется) swap-файл.\\ 
 +Рекомендации по созданию swap-раздела ​можно просмотреть ​[[swap|здесь]]. 
 +Вариант со swap-файлом является более удобным в использовании (но чуть более ​сложным при создании) т.к. он не занимает отдельный раздел,​ легко удаляется, ​его размер можно ​легко ​изменить (без необходимости ​менять разметку диска и двигать/​изменять размеры других разделов).\\ 
 +Но учтите,​ не на любой файловой системе можно создать (и использовать) swap-файл:​ из за некоторых особенностей организации ​размещения файлов на диске swap-файл нельзя использовать на файловой системе [[btrfs|btrfs]] (без специальных ухищрений).  
  
 ====Создание swap-файла==== ====Создание swap-файла====
Строка 16: Строка 25:
 sudo swapon /​swapfile</​code>​ sudo swapon /​swapfile</​code>​
   -- Допишите строку в fstab, чтобы созданный swap подключался автоматически при запуске системы.   -- Допишите строку в fstab, чтобы созданный swap подключался автоматически при запуске системы.
-  .. <code bash>​echo "/​swapfile swap swap defaults 0 0"| sudo tee -a /​etc/​fstab</​code>​+  .. <code bash>​echo "/​swapfile swap swap defaults,​pri=<​Приоритет (от 0 до 32767)> ​0 0"| sudo tee -a /​etc/​fstab</​code>​
  
 ====Настройка гибернации в swap-файл==== ====Настройка гибернации в swap-файл====
Строка 39: Строка 48:
 Если у вас все работает - переходите к следующему пункту. Если у вас все работает - переходите к следующему пункту.
 Если нет --- воспользуйтесь утилитой ''​uswsusp''​. Если нет --- воспользуйтесь утилитой ''​uswsusp''​.
 +<code bash>​sudo s2disk</​code>​
 +Если у вас все заработало - радуйтесь,​ если нет - придется конфигурировать ''​uswsusp'':​
 +<code bash>​sudo dpkg-reconfigure -pmedium uswsusp</​code>​
 +На вопрос "​Продолжить без работоспособного пространства подкачки?"​ в случае использования swap-файла отвечаем "​Да",​ пространство подкачки в диалоге указываем по UUID (**/​dev/​disk/​by-uuid/<​your UUID>​**),​ раздел __не шифруем__ (иначе может случиться подобное описанному [[http://​www.linux.org.ru/​forum/​general/​10586420 | здесь]]). После этого автоматически будет сформирован uswsusp.conf с необходимыми параметрами.
 +Пробуем опять:
 +<code bash>​sudo s2disk</​code>​
 +Если заработало,​ заменяем вызов ''​pm-hibernate''​ на ''​s2disk'':​
 <code bash>​echo "​SLEEP_MODULE=uswsusp"​ | sudo tee -a /​etc/​pm/​config.d/​module</​code>​ <code bash>​echo "​SLEEP_MODULE=uswsusp"​ | sudo tee -a /​etc/​pm/​config.d/​module</​code>​
 Снова проверьте гибернацию (возможно,​ перед этим потребуется перезагрузка):​ Снова проверьте гибернацию (возможно,​ перед этим потребуется перезагрузка):​
 <code bash>​sudo pm-hibernate</​code>​ <code bash>​sudo pm-hibernate</​code>​
-Если не заработало с ''​uswsusp'', ​можете опробовать [[TuxOnIce]].+Если не заработало с ''​uswsusp'', ​используйте [[TuxOnIce]] - он обычно работает без проблем.
  
 Если гибернация заработала,​ то остается только активировать кнопку "​Спящий режим"​ в меню выключения. Для этого: Если гибернация заработала,​ то остается только активировать кнопку "​Спящий режим"​ в меню выключения. Для этого:
Строка 60: Строка 76:
   -- Перезапустите X-сервер.   -- Перезапустите X-сервер.
  
 +Если гибернация работает по вызову ''​pm-hibernate'',​ но не работает по кнопке "​Спящий режим"​ в меню выключения,​ то, возможно,​ проблема в том, что эта кнопка вызывает команду ''​systemctl hibernate'',​ которая по умолчанию не поддерживает ''​uswsusp''​ (подробно эта проблема в LXDE описана [[http://​www.linux.org.ru/​forum/​general/​12274792 | здесь]]).
 +  -- Для решения этой проблемы внесите правки в конфигурационный файл:
 +  .. <code bash>​sudo cp /​lib/​systemd/​system/​systemd-hibernate.service /​etc/​systemd/​system/​
 +sudo nano /​etc/​systemd/​system/​systemd-hibernate.service</​code>​
 +  .. Замените в нём параметр //​ExecStart//​ с <code ini>​ExecStart=/​lib/​systemd/​systemd-sleep hibernate</​code>​
 +  .. на <code ini>​ExecStart=/​bin/​sh -c '​s2disk && run-parts --regex .\* -a post /​lib/​systemd/​system-sleep'</​code>​
 ===== Ссылки ===== ===== Ссылки =====
   * [[http://​ubuntuforums.org/​showthread.php?​t=1042946|Исходная статья,​ подвергшаяся обработке]] (англ.)   * [[http://​ubuntuforums.org/​showthread.php?​t=1042946|Исходная статья,​ подвергшаяся обработке]] (англ.)
   * [[https://​wiki.archlinux.org/​index.php/​Uswsusp#​With_pm-utils|Статья на ArchWiki]] (англ.)   * [[https://​wiki.archlinux.org/​index.php/​Uswsusp#​With_pm-utils|Статья на ArchWiki]] (англ.)
   * [[http://​blog.demkov.me/​281-спящий-режим-в-ubuntu-13-10/​|Активация кнопки "​Спящий режим"​]]   * [[http://​blog.demkov.me/​281-спящий-режим-в-ubuntu-13-10/​|Активация кнопки "​Спящий режим"​]]
 +  * [[https://​wiki.debian.org/​Hibernation/​Hibernate_Without_Swap_Partition | Конфигурирование uswsusp]]
  
 {{tag>​спящий_режим система swap}} {{tag>​спящий_режим система swap}}