Hibernate работал правильно, когда я использовал Ubuntu 17.04. После обновления до 17.10 я не мог возобновить работу из-за черного экрана после возобновления ( эта ошибка ).
После обновления до 18.04, если я пытаюсь запустить компьютер после спящего режима, он загружается, как будто не было спящего режима.
Ответы:
Внесены изменения в настройки по умолчанию по сравнению с предыдущими LTS (16.04). В моем случае гибернация не работала до тех пор, пока я не сделал несколько шагов, среди которых был увеличен размер файла подкачки, он включен, убедился, что политики разрешают это и т.д.
Это может быть мой самый длинный ответ на весь StackExchange, поэтому я попытался сделать заголовки описательными .
Сапоги как не было гибернации
Было бы разумно взглянуть на ваши журналы (
dmesg
может помочь) и посмотреть, если что-нибудь есть. Существуют причины, когда, несмотря на то, что вы говорите системе о спящем режиме, она на самом деле не будет или вместо этого будет приостановлена в оперативную память (спит).Просмотр
kern.log
иsyslog
поиск сообщений, связанных с гибернацией, также не повредит. Разделы, начинающиеся с «проблема», могут помочь вам с конкретными проблемами.Файл подкачки или раздел подкачки
Одним из важных изменений является то, что теперь у вас нет раздела подкачки, но у вас есть файл подкачки.
Файл подкачки может не работать для вашего оборудования / драйверов / ОС и гибернации.
Спящий режим отключен
Политики также могут отключать или запрещать спящий режим.
жаргон
Приостановить к ОЗУ - ОЗУ хранит данные, компьютер быстрее переходит в спящий режим, потребляет больше энергии при приостановке, быстрее просыпается. Некоторые называют это сном.
Приостановить на диск - он же спящий режим. Оперативная память сохраняется для подкачки (раздел или файл), компьютер медленнее спит, потребляет меньше энергии при спящем режиме, медленнее просыпается.
Предпосылки - места достаточно?
Чтобы перейти в спящий режим, вам необходимо (упрощение) сохранить всю оперативную память на жестком диске. Итак, вам нужно выделить достаточно места для этого. Если вы этого не сделаете, это не удастся, и вы не будете в спящем режиме.
free -m
скажет вам, сколько памяти у вас есть, сколько вы используете и сколько в вашем свопе.df -h
скажет вам, сколько дискового пространства у вас в каждой точке монтирования и сколько используется, свободно и т. д. Это важно, так как вы можете позже захотеть указать, где будет находиться ваш файл подкачки или какой раздел «обрезать», чтобы иметь достаточно места для вашего обмена.cat fstab
должен предоставить вам информацию, если у вас есть раздел или файл подкачки. Согласно Ubuntu Hibernation FAQswapfile
не всегда могут работать с некоторыми комбинациями оборудования / драйверов.Если вам не хватает места, следуйте часто задаваемым вопросам по Ubuntu swap . В нем рассказывается, как увеличить файл подкачки, добавить другой, проверить, используется ли он и т. Д. С помощью команд и объяснений. Действительно хороший ресурс.
У меня недостаточно места для моей оперативной памяти!
Документы ядра говорят:
Итак, попробуйте настроить размер изображения. Как - задайте еще один вопрос, пожалуйста.
Предварительные условия - поддерживает ли ваше ядро приостановку на диск?
Ядро поддерживает все, что перечислено
/sys/power/state
, поэтому:cat /sys/power/state
Разрешено (по моим сведениям) записи там включает:
mem
,standby
,freeze
,disk
. Объяснение:mem
- имеет несколько значений, которые именно в вашей системе вы узнаете черезcat /sys/power/mem_sleep
. У меня есть:s2idle [deep]
standby
- Приостановка при включении питания (если поддерживается)freeze
- Приостановить на холостом ходу (STI)disk
- Suspend To Disk (STD), гибернация . Это - вы хотите.Тогда нам нужно проверить
cat /sys/power/disk
. Если у вас есть,disabled
то ныряйте в своем BIOS в поисках безопасной загрузки - это единственная идея, которую я могу предложить, и единственное, что я знаю, может помешать и отключить спящий режим. Хотя я знаю только о SecureBoot, могут быть и другие помехи, поэтому полезно взглянуть на BIOS, даже если у вас нет «безопасной загрузки».Читая здесь:
TBH, даже если ваше ядро НЕ поддерживает спящий режим, вы можете попробовать его другим способом, прокрутите вниз до раздела
Interfaces
.Прочитайте это - предупреждения и проблемы - нет BTRFS
В произвольном порядке:
Не используйте BTRFS и спящий режим: результатом будут поврежденные данные.
Хочу в спящий режим - своп раздела
Есть случаи, когда люди отказываются от файла подкачки и возвращаются в раздел подкачки. В конце концов, это работало на предыдущих LTS. Я не пробовал, поэтому не буду предлагать указатели.
Хочу в спящий режим - с файлом подкачки
/etc/fstab
на новый. Перезагрузка, чтобы увидеть изменения приняты хорошо (сохраните резервную копию,fstab
чтобы вы могли легко вернуться на всякий случай.Параметры ядра? Страшно!
Внимательно прочитайте и решите, хотите ли вы это сделать, но это всего лишь способ настройки вашего ядра. Может быть легче перейти в спящий режим с помощью
systemd
иuswsusp
(см. Интерфейсы ниже). Может случиться так, что вы, как и я, в конечном счете решите, что приостановки к оперативной памяти достаточно, и вы не хотите иметь 32 ГБ в файле подкачки (например, не очень хорошо для людей с одним SSD в своих ноутбуках). Но!resume=
знать, в каком разделе находится ваш файл подкачки, иresume_offset=
знать, откуда в файле подкачки начинать возобновление.resume=
указывать на раздел подкачки.resumedelay=
.Документы ядра о задержке выхода из спящего режима:
Обязательные параметры для файла подкачки и гибернации :
Для
resume=
выбора выберите тот же стиль, что и дляroot
элементаfstab
. Итак, или/dev/sdaX
илиUUID
или LVM. Для гибернации в файл - укажите раздел, где находится ваш файл.Чтение:
Проблема - заголовок подкачки не найден
Файл подкачки должен быть правильно отформатирован. Если ваши журналы сообщают вам об этом, вы либо пытаетесь перейти в спящий режим, либо ваш параметр резюме неверен.
Переключиться на раздел или исправить файл или изменить интерфейс, используемый для гибернации.
См .: /unix/43508/debian-hibernate-problem-pm-swap-header-not-found.
mkswap
используется для форматирования файла, подробнее об этом здесьПроблема! Спячка не допускается!
Проверьте:
pm-hibernate
(если установлен пакет pm-utils) илиsystemctl hibernate
сообщите, что вам это запрещено. Настройки по умолчанию в Ubuntu начиная с IIRC 12.04.Решение (я): зависит от вашей версии Polkit, вашей версии Ubuntu и вкуса ... Смотрите этот вопрос . Также может помочь ArchWiki на Polkit .
Информацию о Mint см .: https://forums.linuxmint.com/viewtopic.php?t=259912.
Проблема! Спящий режим отключен чем-то в BIOS!
Тест:
cat /sys/power/disk
имеетdisabled
. Журналы показывают «Не удалось перейти в спящий режим системы через logind: глагол сна не поддерживается».Решение: найдите свой BIOS и найдите проблемную вещь. Выключи это.
Решение 2: попробуйте другой спящий интерфейс.
Смотрите: Как активировать гибернацию в 16.04.1? (systemd) .
Интерфейсы
Заключительные замечания
Для меня это было почти два дня работы, чтобы собрать это. Надеюсь, это поможет вам (и другим) решить вашу проблему быстрее. Есть еще моменты, которые я пропустил, но сейчас 2 часа ночи, и я не хочу больше писать сейчас. Я, конечно, открыт для любых указателей, чтобы сделать это лучше, так что комментируйте. Я отвечу, когда буду спать, работать и т. Д. :-)
Я не уверен, что спящий режим на диске это так здорово. Я пошел со сном в конце. Но для меня проблема заключалась в том, чтобы иметь файл объемом 32 ГБ просто для того, чтобы можно было переходить в режим гибернации, поскольку я обычно вообще избегаю подкачки. Мой начальный файл подкачки был в 2 ГБ, и это было в основном пустым. YMMV. Тем не менее, удачи! И начни с логов!
источник
$ sudo apt install linux-generic-hwe-18.04
(для некоторых аппаратных средств дажеlinux-generic-hwe-18.04-edge
стоило бы попробовать ).Используйте UUID раздела подкачки вместо его точки монтирования в параметре RESUME
resume=UUID=<#>
в обоих/etc/default/grub
и/etc/initramfs-tools/conf.d/resume
Создайте запись для раздела подкачки
/etc/fstab
без точки монтирования примерно такВ
/etc/default/grub
я использовал отдельную запись для возобновления гибернацииСоздайте policykit в местном органе власти (pkla)
И вставить туда
После этого обновите initramfs и GRUB.
Перезагрузитесь, откройте некоторые приложения и используйте
systemctl hibernate
(без sudo), чтобы увидеть, работает ли онисточник
Для меня это всегда работало до 18.04, а после 18.04 я включил его, как и во многих статьях, но он вдруг перестал работать только вчера (работает нормально в течение 4-5 месяцев),
и вот ... одна вещь, которая снова заработала ...
Скажите grub2, где находится раздел подкачки:
Сначала выясните, в каком разделе он находится, используя следующую команду:
Мой на sda7, как следующий вывод:
Затем добавьте в Grub2 следующее дополнение к следующей строке, используя следующую команду:
sudo gedit / etc / default / grub
Важная часть
resume=/dev/sda7
Затем обновите Grub с помощью следующей команды, и после этого он снова начнет работать идеально:
После многих попыток это сработало, возможно, только из-за обновления ядра, которое все испортило, тем не менее, это сработало.
источник
надеюсь, это кому-нибудь поможет, но я использую popos / ubuntu 19.04. В моей настройке я был в состоянии гибернации с помощью s2disk или pm-hibernate, но возобновление не удавалось. Чтобы это исправить, моя система загружается с использованием UEFI вместо grub. Мне просто пришлось переустановить загрузчик. Чтобы проверить, используете ли вы UEFI, используйте следующее:
[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"
если в режиме UEFI я следовал этому руководству, чтобы переустановить загрузчик, это зависит от того, используете ли вы диск nvme или диск sata: https://support.system76.com/articles/bootloader/
убедитесь, что в ваших настройках kernalboot вы указываете раздел или UUID того, откуда продолжить, например, что-то вроде этого:
резюме = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Вы можете добавить это одним из следующих способов: 1) заглушка-ядро sudo -a "resume = UUID = ..." 2) отредактируйте файл /etc/initramfs-tools/conf.d/resume и добавьте: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88
проверьте файл / var / log / syslog на что-то вроде этого: 4 августа, 22:26:42 pop-os / usr / bin / kernelstub [19639]: kernelstub: DEBUG kopts: root = UUID = b37019a8-91f5-445f-94c1 -7359a49ed5df ro quiet loglevel = 0 systemd .show_status = false резюме = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Если резюме отсутствует или неправильное, вам необходимо снова обновить загрузочный ядро.
источник
Помимо создания свопа резюме точки в жратву упоминается в Sam73 в ответ , я обнаружил , что мой Ubuntu 18,04 необходимо также установить
laptop-mode-tools
:затем измените
ENABLE_LAPTOP_MODE_ON_AC=1
в файле конфигурации:запустить режим ноутбука с:
PS Вы можете проверить, если ноутбук запускается или нет
Если он печатает
0
,laptop_mode
он не работает, в противном случае он указывает, что он работает нормально.источник