Гибернация в 18.04 [дубликат]

На этот вопрос уже есть ответ здесь:

Гибернация на моем Ubuntu 18.04 не работала из коробки (я имею в виду sudo systemctl hibernate ). Некоторое время назад я предпринял несколько попыток исправить это и, к сожалению, не могу точно вспомнить, что я сделал.

Но теперь:

sudo hibernate

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

sudo systemctl hibernate

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

Пожалуйста, помогите мне разобраться и включить гибернацию в графическом интерфейсе.

В то же время режим ожидания в памяти и возобновление из памяти работает без проблем, включая экран входа в систему при возобновлении .

Мой главный вопрос: какой из двух механизмов hibernate или systemctl hibernate мне следует использовать с 18.04?

Подробности

В системе есть раздел подкачки

$ lsblk | grep SWAP
└─sda5   8:5    0  16,8G  0 part [SWAP]
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15894        3386        9945        1311        2561       11848
Swap:         17163        2150       15013

, а в / etc / default / grub он имеет

GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash resume = / dev / sda5" {{ 1}} GRUB_CMDLINE_LINUX = ""

и

$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume

[решено]: -)

Наконец Мне удалось заставить работать гибернацию. Пока у меня нет глубокого понимания предмета, я лучше опишу то, что я сделал. Итак

  1. Полностью удалены pm-utils и uswsusp , затем sudo update-initramfs -c -k all и reboot

После этого Попытка перехода в спящий режим завершилась чистой загрузкой вместо возобновления. Затем

  1. переустановил systemd , затем изменил имена устройств на UUID, так как

в / etc / default / grub

GRUB_CMDLINE_LINUX_DEFAULT = "тихое возобновление всплеска = UUID = 2c8ec945-6967- 4538-93ef-49eb4df6f2a1 "

в /etc/initramfs-tools/conf.d/resume

RESUME = UUID = 2c8ec945-6967-4538-93ef-49eb4df6f2a1

затем

$ sudo update-initramfs -c -k all
$ sudo update-grub
$ reboot

sudo systemctl hibernate и возобновить работу удалось, но без экрана входа в систему, поэтому

  1. В Настройках (графический интерфейс) для действия кнопки питания я назначил «Гибернация»

Теперь, когда я нажимаю кнопку питания система переходит в спящий режим, а затем восстанавливается через экран входа в систему.

Большое спасибо всем участникам.


UPD: Теперь я нашел еще лучшее решение - используйте файл подкачки

Я проверил это при новой настольной установке Ubuntu 18.10 и предположил, что она будет работать и со свежей настольной установкой 18.04, поскольку они оба используют файл подкачки по умолчанию, то есть по умолчанию они не выделяют раздел подкачки .Но файл подкачки по умолчанию составляет 2 ГБ независимо от размера системной памяти, поэтому его следует увеличить.

Полное описание, например, здесь .

9
задан 31 October 2019 в 09:17

1 ответ

Существует два превосходных ответа на вопросы о спящем режиме с немного большим количеством детали здесь:

Мало Древнего Лесного ответа Kami на: Ubuntu 18.04 не может возобновиться после того, как будут в спящем режиме

Ответ Zanna на: Как я могу быть в спящем режиме на Ubuntu 16.04?

Я обычно не использую, в спящем режиме, но пытался использовать его недавно при упорно искании ошибки и понял, что для работы над 18,04, необходимо добавить строку к/etc/default/grub для сообщения этого, откуда возобновиться.

На 16,04 это не было необходимо, чтобы я добавил 'резюме =' параметр для расчистки, таким образом, я думаю, что изменение произошло относительно недавно.

Вы являетесь, вероятно, лучшими для использования UUID (Универсально Уникальный идентификатор) и можете использовать 'Дисковую' программу, чтобы узнать UUID раздела подкачки и просто скопировать и вставить его оттуда.

Использовать sudo nano /etc/default/grub добавить к строке

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

так, чтобы это имело дополнительный параметр ядра resume=UUID=theUUIDofyourswappartition промежуточный кавычки.

Ваш будет отличаться, но в моем случае строка:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"

(выйдите из нано с помощью Ctrl+x, нажмите y, чтобы внести изменения и войти для принятия имени файла),

Необходимо работать sudo update-grub для внесения изменений эффективными, но когда Вы затем перезагружаете, необходимо смочь быть в спящем режиме без проблем.

Насколько я знаю, функциональность в спящем режиме, должен возобновить туда, где Вы кончили, так не разработан для движения во вход в систему, экранируют и просят пароль.

Я не знаю, можно ли изменить его так, чтобы это попросило пароль, но могло бы стоить задать отдельный вопрос, чтобы видеть, знает ли кто-то еще, что сделать.


Своп-файл

Если у Вас есть своп-файл вместо отдельного раздела подкачки затем, также необходимо добавить дополнительное resume_offset= параметр.

Wiki Linux Дуги имеет большой раздел по этому, но в основном Ваш файл подкачки должен быть на основном разделе, на котором Вам установили Ubuntu.

Для обнаружения смещения, чтобы вставить resume_offset= можно открыть терминал и тип

sudo filefrag -v /swapfile

Вы получите что-то, что похоже на это:

ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..   32767:      34816..     67583:  32768:            
   1:    32768..   63487:      67584..     98303:  30720:            
   2:    63488..   96255:     100352..    133119:  32768:      98304:
   3:    96256..  126975:     133120..    163839:  30720:   
etc...

и Вы хотите первое число, в первой строке это находится под physical_offset (в этом случае 34816)

Таким образом, так же, как пример, с помощью UUID и физического смещения моей машины со Своп-файлом, я изменился GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" строка, чтобы быть

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=09e601cd-5bac-491a-9115-fda1b2eb4664 resume_offset=34816"

Не забывайте работать sudo update-grub и перезагрузка, но после этого в спящем режиме, должен работать правильно.

10
ответ дан 23 November 2019 в 05:02

Другие вопросы по тегам:

Похожие вопросы: