18.04 гибернация с включенным UEFI и безопасной загрузкой

14

"sudo systemctl start hibernate.target" отлично работал с 16.04 на Acer B117 с использованием устаревшей загрузки; Обновление до 18.04 заставило меня использовать UEFI и (обязательное требование Acer) безопасную загрузку. Suspend все еще работает, но мне нужен спящий режим.

Раздел подкачки активен и равен объему оперативной памяти + 2 ГБ;

GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск резюме = UUID = myswapuuid"

journalctl -xe обнаружил сбой доступа к / sys / power / disk

cat / sys / power / disk: [отключено]

cat / sys / power / state: freeze mem

Какие-либо предложения?

olli61
источник

Ответы:

12

У меня та же проблема, и, к сожалению, это невозможно с официальным ядром Ubuntu начиная с версии 4.13 из-за патча блокировки ядра (efi-lockdown). Обоснованием является:

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

Связанный бионический коммит вы можете увидеть здесь .

Это спорное решение и Линус отказался объединить эти изменения в ядро Linux.

Немного больше деталей вы можете найти в статье Блокировка ядра в 4.17? и его комментарии.

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

PS Я буду рад ответить другим, если кто-нибудь решит эту проблему.

Snaker
источник
Большое спасибо, понимание, почему это хороший шаг вперед.
olli61
Какое ядро ​​я могу использовать? Гибернация является важной особенностью для меня. (Я ожидаю, что у меня должен быть один более новый, чем 4.15, в идеале 4.18, так как мой WiFi работает на последнем, но не на первом.)
nsandersen
1

надеюсь, это кому-нибудь поможет, но я использую 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/

Ключ должен выполнить эту команду:

sudo update-initramfs -c -k all

убедитесь, что в ваших настройках 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файл на что-то вроде этого:

Aug 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 resume=UUID=ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Если резюме отсутствует или неправильное, вам необходимо снова обновить загрузочный ядро.

Lingster
источник
Спасибо, это единственный ответ, который позволил мне продолжить без проблем.
Эммануэль М. Смит
Как пользователь шифрования, мне не нужно было изменять initramfs, но я должен был отключить cryptswap и повторно включить обычный обмен, раскомментируя и комментируя соответственно в /etc/fstabи /etc/crypttab. cryptswap использует случайный ключ при каждой загрузке, поэтому не работает в режиме гибернации.
fuzzyTew
Если вы хотите зашифрованный раздел подкачки, вы можете взглянуть на это: help.ubuntu.com/community/EnableHibernateWithEncryptedSwap
Lingster