Hibernación 18.04 con UEFI y arranque seguro habilitado

14

"sudo systemctl start hibernate.target" funcionó bien con 16.04 en un Acer B117 con arranque heredado; La actualización a 18.04 me obligó a usar UEFI y (requisito de Acer) arranque seguro habilitado. Suspender aún funciona, pero necesito hibernar.

La partición de intercambio está activa e iguala el tamaño de RAM + 2GB;

GRUB_CMDLINE_LINUX_DEFAULT = "resumen de bienvenida silenciosa = UUID = myswapuuid"

journalctl -xe reveló una falla en el acceso / sys / power / disk

cat / sys / power / disk: [deshabilitado]

cat / sys / power / state: congelar mem

¿Alguna sugerencia?

olli61
fuente

Respuestas:

12

Tengo el mismo problema y, desafortunadamente, es imposible con el kernel oficial de Ubuntu desde la versión 4.13 debido al parche de bloqueo del kernel (efi-lockdown). La sustanciación es:

Actualmente no hay forma de verificar la imagen del currículum al regresar de la hibernación. Esto podría comprometer el modelo de confianza de los módulos firmados, por lo que hasta que podamos trabajar con imágenes de hibernación firmadas, lo desactivaremos cuando el núcleo esté bloqueado.

Compromiso Bionic relacionado que puedes ver aquí .

Esta es una decisión controvertida y Linus declinó fusionar estos cambios en el kernel de Linux.

Un poco más de detalles que puede encontrar es el artículo Kernel lockdown in 4.17? y sus comentarios

Entonces, mientras esperamos un software mágico que funcione con imágenes de hibernación firmadas, solo podemos usar otro kernel o deshabilitar el arranque seguro .

PD: Estaré encantado de votar otra respuesta si alguien resolvió este problema.

Snaker
fuente
Muchas gracias por entender por qué está un buen paso adelante.
olli61
¿Qué núcleo podría usar? La hibernación es una característica esencial para mí. (Espero tener uno más nuevo que 4.15, idealmente 4.18, ya que mi WiFi funciona en este último, pero no en el primero)
Nsandersen
1

Espero que esto ayude a alguien, pero estoy ejecutando popos / ubuntu 19.04. En mi configuración pude hibernar usando s2disk o pm-hibernate, pero el currículum fallaba. Para solucionar esto, mi sistema se inicia usando UEFI en lugar de grub. Solo tuve que reinstalar el cargador de arranque. Para verificar si está ejecutando UEFI use lo siguiente:

[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"

si está en modo UEFI, seguí esta guía para reinstalar el gestor de arranque, varía si está utilizando un disco nvme o un disco sata: https://support.system76.com/articles/bootloader/

La clave es ejecutar este comando:

sudo update-initramfs -c -k all

asegúrese de que en sus opciones de inicio de kernel especifique la partición o UUID de dónde reanudar, por ejemplo, algo como esto:

resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Puede agregar esto: 1) sudo kernel-stub -a "resume = UUID = ..." 2) edite el archivo /etc/initramfs-tools/conf.d/resume y agregue: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88

revise su /var/log/syslogarchivo para algo como esto:

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

Si falta el currículum o está mal, deberá actualizar su kernel de arranque nuevamente.

Lingster
fuente
Gracias, esta es la única respuesta que me permitió reanudar sin problemas.
Emmanuel M. Smith
Como usuario de cifrado, no necesitaba cambiar el initramfs, pero tuve que deshabilitar cryptswap y volver a habilitar el intercambio normal al descomentar y comentar adecuadamente en /etc/fstaby /etc/crypttab. cryptswap usa una clave aleatoria en cada arranque, por lo que no funciona para la hibernación.
fuzzyTew
Si desea una partición de intercambio cifrada, puede consultar esto: help.ubuntu.com/community/EnableHibernateWithEncryptedSwap
Lingster