разве ситуация не изменилась с systemd? теперь мы должны использовать это, systemctl hibernateтак что, возможно, не дурак ... или, по крайней мере, обновленный ответ может потребоваться, чтобы сделать старый вопрос действительным для дурака
Zanna
Какую версию ядра вы используете? Введите uname -rв терминале (извините, если вы уже знали это).
WinEunuuchs2Unix
пожалуйста, отредактируйте свой вопрос и добавьте вывод, free чтобы мы могли определить, достаточно ли у вас настроек свопинга для успешного спящего режима.
Старейшина Гик
Ответы:
63
Вы можете использовать
sudo pm-hibernate
чтобы проверить, работает ли hibernate в вашей системе ( это приведет к гибернации вашего компьютера ).
Если это не работает, убедитесь, что размер вашего подкачки не меньше размера вашей оперативной памяти.
Чтобы добавить опцию в меню настроек, вы можете создать файл конфигурации. Откройте окно терминала и выполните эту команду:
Открывается нано с пустым файлом. Скопируйте строки ниже и вставьте их в окно nano.
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
Затем сохраните изменения и закройте nano и перезагрузите систему, чтобы отобразить доступный Hibernate в «Параметры электропитания».
Нам нужно перезагрузить компьютер после редактирования файла, чтобы доступный Hibernate появился в разделе «Параметры электропитания».
Jus12
21
sudo pm-hibernate немедленно убил мою систему без предупреждения. Вы должны сказать людям, что это произойдет.
Яир
лучший ответ . Это также работает на 17.4 и 17.10.
Саураб Бхандари
1
Этот ответ в сочетании с ответом на добавление "resume =" в GRUB_CMDLINE_LINUX_DEFAULT решил эту проблему для меня - спасибо!
Кристоф
В моем разделе подкачки 17 ГБ и 16 ГБ ОЗУ, почему он не работает? Кажется, что он находится в спящем режиме, потому что для выключения компьютера требуется вечность, тогда как, если я делаю «выключение», он выключается почти сразу. Но когда я снова включаю свой компьютер, все закрывается, и мне приходится начинать все сначала. Это не спящий вообще. Почему это не может быть так просто, как в Windows? Мне нужна помощь, если у кого-то есть идеи о том, как мне заставить его перейти в спящий режим.
user1271772
63
Использование гибернации systemctlи заставить ее работать в сложных случаях
Для меня pm-hibernateвсегда не получается. После некоторых настроек я смог перейти в спящий режим, используя интерфейс systemd (init system в 16.04 и выше). Мне также удалось заставить его работать 17.04 с файлом подкачки. Это тематическое исследование может быть полезно для других с проблемами.
Первая попытка:
sudo systemctl hibernate
Если это не удается, начните устранение неполадок: в состоянии гибернации (HTD или ACPI S4) состояние машины записывается на диск, поэтому для его сохранения не требуется никакого питания. Состояние записывается либо в раздел подкачки, либо в файл подкачки. Примечание: если вы используете Btrfs, НЕ пытайтесь использовать файл подкачки, так как это может привести к повреждению файловой системы.
Ваш раздел подкачки или файл подкачки может потребоваться иметь тот же размер , как RAM , чтобы позволить спящий режим, но есть хороший шанс , что вы будете в состоянии гибернации , если он , по крайней мере 2/5 размер оперативной памяти, в соответствии с вики - страницу Arch , поэтому попробуйте другие шаги, прежде чем увеличивать размер свопа.
Если ваша проблема заключается в том, что вы получаете чистую загрузку вместо ожидаемого возобновления, как минимум вам, скорее всего, потребуется установить параметр загрузки, чтобы найти образ диска
Найдите свой раздел подкачки:
grep swap /etc/fstab
для меня это возвращает (частичный вывод)
# swap was on /dev/mmcblk0p3 during installation
где /dev/mmcblk0p3указывается раздел
Добавьте параметр загрузки:
sudoedit /etc/default/grub
В начале строки GRUB_CMDLINE_LINUX_DEFAULTдобавьте resume=/dev/YourSwapPartitionраздел в кавычки (замените на раздел, который вы определили ранее). Используя мой пример:
Каждый раз, когда вы изменяете этот файл, вы должны запускать, sudo update-grubиначе изменения не будут иметь никакого эффекта.
Теперь вам нужно перезагрузиться. Затем вы можете попробовать перейти в спящий режим, введя команду:
sudo systemctl hibernate
Для возобновления нажмите кнопку питания, и система загрузится.
Если у вас все еще есть проблемы, начните отладку.
Ниже я привожу мой пример в качестве примера, но подробную информацию об отладке S-состояний можно найти в этом блоге, а также в этом .
Установите еще несколько параметров загрузки, чтобы получить больше информации. Удалите quietи splashи добавьте, initcall_debugи no_console_suspendэто приведет к тому, что системные вызовы init будут напечатаны на консоли, чтобы вы могли наблюдать, что происходит не так. Я установил это:
Что помогло мне увидеть, что пошло не так при выходе из спящего режима.
В моем случае после возобновления я потерял WiFi, и ядро явно было расстроено, так как большинство команд (например, чтение чего-либо из /sys, перезагрузка модулей или любая systemctlкоманда) не работали бы - процесс, казалось бы, запускался и просто зависал (все это было бы нормализовался после перезагрузки конечно). Наблюдая за тем, как система очень медленно выключалась и читая все сообщения отладки, я заметил, что с «brcm» было много проблем, поэтому я догадался, что виноват мой модуль беспроводного драйвера Broadcom. Конечно же, я скорректировал процедуру гибернации, чтобы сначала выгрузить модуль:
И все работало отлично. Я также должен занести в черный список btsdioмодуль, который кажется несовместимым сbrcmfmac
Обновление: гибернация с использованием файла подкачки 17.04.
Еще раз с помощью вики-страницы Arch и некоторыми дополнительными изменениями мне удалось заставить работать спящий режим 17.04 с файлом подкачки. Для этого потребовался дополнительный загрузочный параметр, resume_offset=nгде n - это первое число physical_offsetв выводе sudo filefrag -v /swapfile:
$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 1425873920 (348114 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
....
Поэтому дополнительным параметром загрузки в моем случае является resume_offset=34816. Вам все еще нужно установить загрузочный параметр для возобновления раздела. Это будет корневой раздел (или любой другой раздел, в котором находится ваш файл подкачки). Теперь мои параметры:
Где /dev/mmcblk1p2мой корневой раздел (у вас, скорее всего, будет что-то вроде /dev/sda2).
Во время возобновления я видел загрузку изображения успешно, но в моем случае (просто пример - YMMVAPD) тогда еще несколько драйверов ( i2c_designware) выдавали некоторые ошибки, и я получал полное зависание системы при возобновлении. Гибернация работает, если я выгружаю эти модули в дополнение к brcmfmac, но система быстро становится непригодной для использования без этих модулей. Поэтому я создал своего рода скрипт для выгрузки неисправных модулей и немедленной их вставки при возобновлении:
Когда я хочу впасть в спячку, я бегу sudo bash script. Это прекрасно работает.
TL; DR
Используйте systemd, установите загрузочный параметр для возобновления свопинга, идентифицируйте ошибочные драйверы и выгрузите их перед началом спящего режима. Если система не может работать долго без этих модулей или вам нужно выгрузить несколько, может быть проще использовать простой скрипт для запуска гибернации.
Откуда эта информация, что 2/5 объема ОЗУ может быть достаточно и при каких обстоятельствах? У меня есть пользовательская опция в Gnome, "Hibernate", и она, похоже, впадает в спящий режим, но при пробуждении она не работает должным образом. У меня есть раздел подкачки 8GB и 32GB RAM. Это не 2/5, но перед созданием файла подкачки (или раздела) объемом 32 ГБ было бы неплохо узнать.
cslotty
@cslotty Я получил эту информацию из Arch Wiki IIRC - дайте мне знать, если вам это удастся,
Zanna
Спасибо, @ Занна. Я обнаружил, что это на самом деле не спящий режим, что я хочу, а приостановить (S3 / STR) - sry.
cslotty
@cslotty не стоит беспокоиться. В этом случае своп не является вашей проблемой, поскольку он не связан.
Занна
1
Спасибо, мне нужен был синтез этого ответа, а также совет по отключению SecureBoot, чтобы он заработал в конце.
oligofren
20
Я думаю, как включить hibernate для 16.04, ответ известен всем, как описано в Ubuntu Wiki (см. Ниже, если вам нужны шаги). Но вещи, которые нуждаются в проверке, не полны, я думаю. По крайней мере, это то, что я нашел.
Вещи, чтобы проверить
Из моих собственных тестов я нашел по крайней мере одну дополнительную проверку, которую вы должны выполнить. Я не нашел об этом нигде в Интернете.
Вот некоторые проверки -
Убедитесь, что вы не используете какие-либо разделы btrfs . Да . Из моего теста я обнаружил, что если у вас есть разделы btrfs , Hibernate не будет работать. Удаление или изменение типа раздела на ext4мне не помогло. Мне нужно было удалить btrfs-toolsпакет.
sudo apt-get purge btrfs-tools
Возможно, вы захотите проверить другие новые типы разделов, которые не были хорошо протестированы. Без удаления пакета, черный список драйвера также может работать, но я не проверял это.
Также вам необходимо убедиться, что у вас достаточно большой раздел подкачки, чтобы вместить содержимое оперативной памяти. Если объем оперативной памяти составляет 4 ГБ, объем подкачки должен быть не менее 4 ГБ (для обеспечения безопасности следует выделить еще несколько МБ).
Шаги по включению гибернации
Это включает в себя эти шаги
Создайте файл как root в /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
Спасибо, Анвар. Я подал ошибку # 1619846 и передал вам ваш ответ выше. Есть ли шанс, что вы могли бы предложить более точные изменения / дополнения к этой странице в официальной документации?
Гуннар Хьялмарссон,
1
@GunnarHjalmarsson Я бы предложил это предостережение. Но мне нужно больше тестеров, чтобы это проверить. Дадим вам знать позже
Анвар
Хорошо, тогда давайте поговорим подробнее.
Гуннар Хьялмарссон
Я установил на раздел btrfs и удалил в btrfs-toolsсоответствии с вашими инструкциями. Все еще не может впасть в спячку.
Oxwivi
1
На диске есть только vfatдля UEFI, а btrfsи swap. Я на самом деле подозреваю, что это из-за аппаратного обеспечения (ноутбук AMD). Я собираюсь проверить это в другой системе с помощью btrfs и получить ответ.
Oxwivi
7
Безопасная загрузка
(Я задал похожий вопрос, обращая внимание на ответы на основе systemd, поделившись здесь своим решением для людей, которые следят за этим вопросом)
Это решение основано на темах Fedora (они недавно переключились на systemd, так что там больше материала).
В моем случае (свежая установка 16.04.1 на машине, которая всегда поддерживала спящий режим), вызов устаревшего sudo pm-hibernate, похоже, ничего не делал, и современный системный подход systemctl hibernateвернул бы:
Failed to hibernate system via logind: Sleep verb not supported
Оказалось, что виновата была безопасная загрузка: при установке 16.04 вас спросили, что вы хотите с ним делать (насколько я помню, это новость), и я оставил его включенным, не задумываясь об этом.
На моей машине с включенной безопасной загрузкой cat /sys/power/diskответил:
[disabled]
После перезагрузки и отключения безопасной загрузки в настройках BIOS (это зависит от компьютера, но обычно довольно просто), я попробовал cat /sys/power/diskи получил:
[platform] shutdown reboot suspend
который выглядит лучше. И действительно, вызов systemctl hibernateприводит к успешной последовательности гибернации / оттаивания.
Более того, после этого я увидел гибернацию, доступную в качестве опции в различных местах графического интерфейса, без необходимости какого-либо polkitвзлома. Таким образом, кажется, что на systemdсамом деле угадал, /sys/power/diskчто система не была в состоянии гибернации.
Я сделал именно то, что вы объяснили здесь. Но после того, как я выполнил команду «systemctl hibernate», экран стал черным в течение 3 секунд, после чего на рабочем столе снова появились все мои открытые программы, как и перед выполнением команды. Когда я выполнил команду «cat / sys / power / disk» ... она показала мне этот текст: «[платформа] shutdown reboot suspend test_resume», который похож на результат, когда вы выполнили то же самое со своей стороны, но последний текст : "test_resume". У вас есть идея, что я мог бы попытаться решить мою проблему?
Фоксхард
Не слишком уверен, похоже, что гибернация не работает "из коробки" на вашем оборудовании, поэтому она отключена по умолчанию, как отмечали другие. Возможно, вы захотите начать отдельный вопрос о вашей конкретной проблеме.
Марк
Только наполовину работает для меня. Спит, но вместо того, чтобы просыпаться из спящего режима, переходит к нормальной загрузке, а затем застревает навсегда до жесткого физического отключения.
Мэтт
6
Эта инструкция работала для моей установки Ubuntu 18.04.
sudo apt install hibernate Он установит hibernate и другие зависимости, которые необходимы для hibernate
grep swap /etc/fstab (финг UUID)
sudoedit /etc/default/grub
В строке GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск" добавьте UUID свопа. Строка выглядит следующим образом GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск резюме = UUID свопа"
sudo update-grub
Перезагрузка и после перезагрузки sudo systemctl hibernate. Если все работает нормально, добавьте пункт меню.
sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Теперь вставьте это:
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
вместо добавления фиксированного значения /etc/default/grubрассмотрите возможность обновления с помощью initramfs update-initramfs -u -k allи найдите сообщение вроде The initramfs will attempt to resume from /dev/dm-0. Это автоматически установит резюме устройства.
УКОС
Спасибо, отлично работает на Ubuntu 18.04! Обратите внимание, что если вы впервые используете расширение gnome, вам необходимо установить расширение для браузера и разъем. Это объясняется в ссылке на расширение в верхней части.
Карим Сонбол
4
Расширяя свой комментарий к ответу kelvinelove, файл, который он предлагает редактировать, не существовал в моей системе (свежая версия Ubuntu 16.04). Вместо этого я сделал это:
Посмотрите на эти разделы (они правы друг с другом):
[Отключить спящий режим по умолчанию в upower] Identity = unix-user: * Action = org.freedesktop.upower.hibernate ResultActive = no
[Отключить спящий режим по умолчанию в logind] Identity = unix-user: * Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; ResultActive = нет
Измените ResultActive = нет на ResultActive = да для них обоих.
Нажмите Ctrl + O, чтобы сохранить файл.
Перезагрузите компьютер
Опция Hibernate теперь доступна в ваших меню питания.
РЕДАКТИРОВАТЬ: Гуннар указал, что этот файл перезаписывается, если обновляется определенный пакет, поэтому, в зависимости от ваших намерений, это, скорее всего, не лучшее решение.
Файл в /etcне должен существовать по умолчанию. Это файл конфигурации, который вы создаете. Редактирование файла, принадлежащего пакету, как вы предлагаете выше, - плохой совет, так как он будет перезаписан при следующем обновлении пакета.
Гуннар Хьялмарссон
@GunnarHjalmarsson Если это так, я бы сказал, что следует указать, что он может не существовать. Я ожидаю большего от ответа Ask Ubuntu с самым высоким рейтингом, чем от ответа «скопировать / вставить эту команду» -> «type this», в котором отсутствует какая-либо проверка того, правильно ли вы поступаете (кроме проверки работоспособности) , Что если кто-то найдет этот ответ через пару лет, но боится попробовать его, поскольку файл пуст, а в инструкциях четко указано, что его нужно добавить в файл, подразумевая, что он существует? Тем не менее, я ценю информацию, добавлю ее в ответ для завершения.
fgblomqvist
1
Честная оценка; Я отредактировал ответ NirajW с этим разъяснением. Следует отметить, что оригинальный источник информации на этой странице говорит о создании .
Гуннар Хьялмарссон
Это прекрасно, ты спас меня, брат :)
Азам Алви
4
Для меня это работает, чтобы установить hibernateпакет, перезагрузиться и затем запустить sudo hibernate-disk. Я уверен, что можно добавить его в меню, но это не стоит времени для меня.
Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина режим гибернации, потому что причина, по которой гибернация отключена по умолчанию, заключается в том, что на некоторых машинах она иногда приводит к неприятным результатам. Проверьте свою машину, открыв терминал ( Ctrl+ Alt+ T) и набравsudo pm-hibernate
Ваша машина должна быть в спящем режиме. Разбудите свой компьютер после спящего режима и наблюдайте, ведет ли он себя плохо или работает ли он нормально. Если после спящего режима у вас возникнут какие-либо нарушения, я советую вам не продолжать следующую процедуру. Однако, если он работает просто отлично, продолжайте активировать спящий режим, выполнив это:
У меня есть ThinkPad -E550, и у него нет проблем с гибернацией, когда у меня установлена ОС Ubuntu 15.1 или Windows8.1. но при использовании Ubuntu 16.04, когда я использую команду "sudo pm-hibernate", он не полностью впадает в спящий режим, и только экран становится черным, а машина все еще включена.
Mahyar
В моем случае команда вообще ничего не делает. Терминал переходит на новую строку и ожидает следующую команду, т.е. предыдущая команда была выполнена. Но это ничего не делаетat all
Aalok
Это не работает для меня. Ubuntu 16.04. Опция Hibernate не появляется и остается отключенной в Настройках -> Питание, что-нибудь еще?
sudo pm-hibernate
?systemctl hibernate
так что, возможно, не дурак ... или, по крайней мере, обновленный ответ может потребоваться, чтобы сделать старый вопрос действительным для дуракаuname -r
в терминале (извините, если вы уже знали это).free
чтобы мы могли определить, достаточно ли у вас настроек свопинга для успешного спящего режима.Ответы:
Вы можете использовать
чтобы проверить, работает ли hibernate в вашей системе ( это приведет к гибернации вашего компьютера ).
Если это не работает, убедитесь, что размер вашего подкачки не меньше размера вашей оперативной памяти.
Чтобы добавить опцию в меню настроек, вы можете создать файл конфигурации. Откройте окно терминала и выполните эту команду:
Открывается нано с пустым файлом. Скопируйте строки ниже и вставьте их в окно nano.
Затем сохраните изменения и закройте nano и перезагрузите систему, чтобы отобразить доступный Hibernate в «Параметры электропитания».
Ссылка: Как мне перевести компьютер в спящий режим? в официальной документации для Ubuntu 16.04.
Надеюсь, что это работает. Это сработало для меня после попытки всех других вариантов.
источник
Использование гибернации
systemctl
и заставить ее работать в сложных случаяхДля меня
pm-hibernate
всегда не получается. После некоторых настроек я смог перейти в спящий режим, используя интерфейс systemd (init system в 16.04 и выше). Мне также удалось заставить его работать 17.04 с файлом подкачки. Это тематическое исследование может быть полезно для других с проблемами.Первая попытка:
Если это не удается, начните устранение неполадок: в состоянии гибернации (HTD или ACPI S4) состояние машины записывается на диск, поэтому для его сохранения не требуется никакого питания. Состояние записывается либо в раздел подкачки, либо в файл подкачки. Примечание: если вы используете Btrfs, НЕ пытайтесь использовать файл подкачки, так как это может привести к повреждению файловой системы.
Ваш раздел подкачки или файл подкачки может потребоваться иметь тот же размер , как RAM , чтобы позволить спящий режим, но есть хороший шанс , что вы будете в состоянии гибернации , если он , по крайней мере 2/5 размер оперативной памяти, в соответствии с вики - страницу Arch , поэтому попробуйте другие шаги, прежде чем увеличивать размер свопа.
Если ваша проблема заключается в том, что вы получаете чистую загрузку вместо ожидаемого возобновления, как минимум вам, скорее всего, потребуется установить параметр загрузки, чтобы найти образ диска
Найдите свой раздел подкачки:
для меня это возвращает (частичный вывод)
где
/dev/mmcblk0p3
указывается разделДобавьте параметр загрузки:
В начале строки
GRUB_CMDLINE_LINUX_DEFAULT
добавьтеresume=/dev/YourSwapPartition
раздел в кавычки (замените на раздел, который вы определили ранее). Используя мой пример:Каждый раз, когда вы изменяете этот файл, вы должны запускать,
sudo update-grub
иначе изменения не будут иметь никакого эффекта.Теперь вам нужно перезагрузиться. Затем вы можете попробовать перейти в спящий режим, введя команду:
Для возобновления нажмите кнопку питания, и система загрузится.
Если у вас все еще есть проблемы, начните отладку.
Ниже я привожу мой пример в качестве примера, но подробную информацию об отладке S-состояний можно найти в этом блоге, а также в этом .
Установите еще несколько параметров загрузки, чтобы получить больше информации. Удалите
quiet
иsplash
и добавьте,initcall_debug
иno_console_suspend
это приведет к тому, что системные вызовы init будут напечатаны на консоли, чтобы вы могли наблюдать, что происходит не так. Я установил это:Что помогло мне увидеть, что пошло не так при выходе из спящего режима.
В моем случае после возобновления я потерял WiFi, и ядро явно было расстроено, так как большинство команд (например, чтение чего-либо из
/sys
, перезагрузка модулей или любаяsystemctl
команда) не работали бы - процесс, казалось бы, запускался и просто зависал (все это было бы нормализовался после перезагрузки конечно). Наблюдая за тем, как система очень медленно выключалась и читая все сообщения отладки, я заметил, что с «brcm» было много проблем, поэтому я догадался, что виноват мой модуль беспроводного драйвера Broadcom. Конечно же, я скорректировал процедуру гибернации, чтобы сначала выгрузить модуль:на резюме я вставляю модуль
И все работало отлично. Я также должен занести в черный список
btsdio
модуль, который кажется несовместимым сbrcmfmac
Обновление: гибернация с использованием файла подкачки 17.04.
Еще раз с помощью вики-страницы Arch и некоторыми дополнительными изменениями мне удалось заставить работать спящий режим 17.04 с файлом подкачки. Для этого потребовался дополнительный загрузочный параметр,
resume_offset=n
где n - это первое числоphysical_offset
в выводеsudo filefrag -v /swapfile
:Поэтому дополнительным параметром загрузки в моем случае является
resume_offset=34816
. Вам все еще нужно установить загрузочный параметр для возобновления раздела. Это будет корневой раздел (или любой другой раздел, в котором находится ваш файл подкачки). Теперь мои параметры:Где
/dev/mmcblk1p2
мой корневой раздел (у вас, скорее всего, будет что-то вроде/dev/sda2
).Во время возобновления я видел загрузку изображения успешно, но в моем случае (просто пример - YMMVAPD) тогда еще несколько драйверов (
i2c_designware
) выдавали некоторые ошибки, и я получал полное зависание системы при возобновлении. Гибернация работает, если я выгружаю эти модули в дополнение кbrcmfmac
, но система быстро становится непригодной для использования без этих модулей. Поэтому я создал своего рода скрипт для выгрузки неисправных модулей и немедленной их вставки при возобновлении:Когда я хочу впасть в спячку, я бегу
sudo bash script
. Это прекрасно работает.TL; DR
Используйте systemd, установите загрузочный параметр для возобновления свопинга, идентифицируйте ошибочные драйверы и выгрузите их перед началом спящего режима. Если система не может работать долго без этих модулей или вам нужно выгрузить несколько, может быть проще использовать простой скрипт для запуска гибернации.
источник
Я думаю, как включить hibernate для 16.04, ответ известен всем, как описано в Ubuntu Wiki (см. Ниже, если вам нужны шаги). Но вещи, которые нуждаются в проверке, не полны, я думаю. По крайней мере, это то, что я нашел.
Вещи, чтобы проверить
Из моих собственных тестов я нашел по крайней мере одну дополнительную проверку, которую вы должны выполнить. Я не нашел об этом нигде в Интернете.
Вот некоторые проверки -
Убедитесь, что вы не используете какие-либо разделы btrfs . Да . Из моего теста я обнаружил, что если у вас есть разделы btrfs , Hibernate не будет работать. Удаление или изменение типа раздела на
ext4
мне не помогло. Мне нужно было удалитьbtrfs-tools
пакет.Возможно, вы захотите проверить другие новые типы разделов, которые не были хорошо протестированы. Без удаления пакета, черный список драйвера также может работать, но я не проверял это.
Также вам необходимо убедиться, что у вас достаточно большой раздел подкачки, чтобы вместить содержимое оперативной памяти. Если объем оперативной памяти составляет 4 ГБ, объем подкачки должен быть не менее 4 ГБ (для обеспечения безопасности следует выделить еще несколько МБ).
Шаги по включению гибернации
Это включает в себя эти шаги
Создайте файл как root в
/etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
Поместите это содержимое в этот файл
Сохраните файл, нажав Ctrl- O. Выход с Ctrl-X
Перезапустите
polkitd
демонЭто должно включить спящий режим.
источник
btrfs-tools
соответствии с вашими инструкциями. Все еще не может впасть в спячку.vfat
для UEFI, аbtrfs
иswap
. Я на самом деле подозреваю, что это из-за аппаратного обеспечения (ноутбук AMD). Я собираюсь проверить это в другой системе с помощью btrfs и получить ответ.Безопасная загрузка
(Я задал похожий вопрос, обращая внимание на ответы на основе systemd, поделившись здесь своим решением для людей, которые следят за этим вопросом)
Это решение основано на темах Fedora (они недавно переключились на systemd, так что там больше материала).
В моем случае (свежая установка 16.04.1 на машине, которая всегда поддерживала спящий режим), вызов устаревшего
sudo pm-hibernate
, похоже, ничего не делал, и современный системный подходsystemctl hibernate
вернул бы:Оказалось, что виновата была безопасная загрузка: при установке 16.04 вас спросили, что вы хотите с ним делать (насколько я помню, это новость), и я оставил его включенным, не задумываясь об этом.
На моей машине с включенной безопасной загрузкой
cat /sys/power/disk
ответил:После перезагрузки и отключения безопасной загрузки в настройках BIOS (это зависит от компьютера, но обычно довольно просто), я попробовал
cat /sys/power/disk
и получил:который выглядит лучше. И действительно, вызов
systemctl hibernate
приводит к успешной последовательности гибернации / оттаивания.Более того, после этого я увидел гибернацию, доступную в качестве опции в различных местах графического интерфейса, без необходимости какого-либо
polkit
взлома. Таким образом, кажется, что наsystemd
самом деле угадал,/sys/power/disk
что система не была в состоянии гибернации.источник
Эта инструкция работала для моей установки Ubuntu 18.04.
sudo apt install hibernate
Он установит hibernate и другие зависимости, которые необходимы для hibernategrep swap /etc/fstab
(финг UUID)sudoedit /etc/default/grub
В строке GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск" добавьте UUID свопа. Строка выглядит следующим образом GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск резюме = UUID свопа"sudo update-grub
sudo systemctl hibernate
. Если все работает нормально, добавьте пункт меню.sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Теперь вставьте это:скопировано с https://askubuntu.com/a/819891/712203
источник
/etc/default/grub
рассмотрите возможность обновления с помощью initramfsupdate-initramfs -u -k all
и найдите сообщение вродеThe initramfs will attempt to resume from /dev/dm-0
. Это автоматически установит резюме устройства.Расширяя свой комментарий к ответу kelvinelove, файл, который он предлагает редактировать, не существовал в моей системе (свежая версия Ubuntu 16.04). Вместо этого я сделал это:
sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
Посмотрите на эти разделы (они правы друг с другом):
Измените ResultActive = нет на ResultActive = да для них обоих.
РЕДАКТИРОВАТЬ: Гуннар указал, что этот файл перезаписывается, если обновляется определенный пакет, поэтому, в зависимости от ваших намерений, это, скорее всего, не лучшее решение.
Источник: http://www.zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04/
источник
/etc
не должен существовать по умолчанию. Это файл конфигурации, который вы создаете. Редактирование файла, принадлежащего пакету, как вы предлагаете выше, - плохой совет, так как он будет перезаписан при следующем обновлении пакета.Для меня это работает, чтобы установить
hibernate
пакет, перезагрузиться и затем запуститьsudo hibernate-disk
. Я уверен, что можно добавить его в меню, но это не стоит времени для меня.источник
Во-первых, я рекомендую вам проверить, поддерживает ли ваша машина режим гибернации, потому что причина, по которой гибернация отключена по умолчанию, заключается в том, что на некоторых машинах она иногда приводит к неприятным результатам. Проверьте свою машину, открыв терминал ( Ctrl+ Alt+ T) и набрав
sudo pm-hibernate
Ваша машина должна быть в спящем режиме. Разбудите свой компьютер после спящего режима и наблюдайте, ведет ли он себя плохо или работает ли он нормально. Если после спящего режима у вас возникнут какие-либо нарушения, я советую вам не продолжать следующую процедуру. Однако, если он работает просто отлично, продолжайте активировать спящий режим, выполнив это:
Отредактируйте открытый файл и добавьте следующие строки:
После этого перезагрузите компьютер, и после входа вы увидите опцию гибернации, добавленную в меню питания, в правом верхнем углу настроек.
источник
at all
com.ubuntu.enable-hibernate.pkla
. Смотрите ответ, опубликованный NirajW.Здесь есть несколько очень полезных ресурсов, которые помогут вам разобраться с некоторыми из наиболее распространенных проблем гибернации в Ubuntu.
В моем случае, при запуске Ubuntu 16.10 на Lenovo u300s, для корректной работы hibernate мне пришлось сделать следующее:
Изменить,
/etc/default/grub
чтобы включить следующую строку:RESUME относится к вашему конкретному UUID файла подкачки. В частности, на моей машине
pci=nomsi
была настройка ключа.Удачи!
источник
Вы должны вручную включить его без особых усилий. Это было отключено по умолчанию.
http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/
Затем, если это не сработает, возможно, это проблема ядра 4.4.0, и вам, возможно, придется обновить ядро.
источник