No se puede reanudar después de hibernar

8

He estado usando hibernate con Ubuntu 16.04 sin ningún problema, pero de repente dejó de funcionar correctamente. Ya sea que hiberne desde el menú de encendido o que use sudo pm-hibernate, apaga la computadora, pero cuando la enciendo de nuevo y elijo Ubuntu en el menú de grub, solo aparece una pantalla en negro. Intenté algunas soluciones (enumeradas a continuación) pero ninguna funcionó.

Estoy realmente decepcionado de que con cada lanzamiento de Ubuntu que uso, generalmente tengo problemas similares con la hibernación (con diferentes computadoras portátiles).

PD: Tengo arranque dual con Windows 10, pero hibernate estuvo funcionando perfectamente durante mucho tiempo.

No funcionó:

Karim Sonbol
fuente
Tengo el mismo problema con una computadora portátil mía, cuando regreso de la hibernación, pantalla negra. Para mí, nunca funcionó. La "solución" para mi computadora portátil es presionar ALT + CTRL + F1, luego esperar unos segundos, luego presionar ALT + CTRL + F7. Eso lo devuelve a la vida (en mi computadora portátil).
Vanessa Deagan
Gracias por la sugerencia, no funcionó para mí.
Karim Sonbol el
¿Qué tal si solo cierras la tapa y la vuelves a abrir? (vale la pena intentarlo)
Vanessa Deagan
Gracias de nuevo @VanessaDeagan, pero aún no pasó nada.
Karim Sonbol
1
Si aún no lo ha visto: bugs.launchpad.net/bugs/1743094
Steve

Respuestas:

9

Tuve los mismos problemas. Hay un error en el kernel más reciente en 16.04. Aquí están los pasos explícitos que he hecho. Haz el primero y, si te resuelve el problema, detente allí. Si no, continúa.

1. Configure la computadora para que arranque con el núcleo anterior

Empezar con:

uname -r

El mío dice 4.13 ... Entonces haz:

grep -i "menuentry '" /boot/grub/grub.cfg

Verá las diferentes entradas de menú en grub. En mi caso, junto con "Ubuntu, con Linux 4.13 ..." había una opción de menú para arrancar con el núcleo anterior. Decía Ubuntu, con Linux 4.10.0-28-generic . En la misma línea tiene algo como 'gnulinux-4.10.0-28-generic-advanced ... (un montón de caracteres aquí)' Copie ese texto, y luego tenemos que decirle a grub2 que arranque con ese núcleo por defecto:

sudo cp / etc / default / grub /etc/default/grub.back

sudo gedit / etc / default / grub

Luego inserté esta línea:

GRUB_DEFAULT = "gnulinux-advanced-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28-generic-advanced-4a50e1e8-56d9-413e-9954-55648888a31d"

No copie esta línea literalmente, pero use la salida del comando grep anterior como se dijo. Luego guardar y,

sudo update-grub

Luego reinicie y verifique que la salida de "uname -r" sea el núcleo más antiguo (4.10 ... en mi caso). Es posible que pueda hibernar ahora o no. Si no, continúe con el siguiente paso.

2. Instale cosas diferentes para hibernar que la predeterminada:

En mi caso, el uso del kernel anterior eliminó la pantalla negra de la muerte y me permitió reanudar después de la hibernación, pero el contenido de la imagen del disco se borraba, es decir, era idéntico a un reinicio, no a la hibernación. Así que instalé algo de mierda que hiberna de manera diferente:

sudo apt-get install uswsusp

Luego cierre la terminal, ábrala nuevamente y escriba:

sudo s2disk

Se supone que esto hiberna la computadora. Si, después de reanudar, todo está como lo dejó, entonces ha resuelto el problema. Pero aún debe continuar con el paso 4 para decirle a Ubuntu que desea usar las cosas nuevas de forma predeterminada y también que desea tener opciones para hibernar en las aplicaciones.

3. Indique a grub 2 dónde está la partición de intercambio:

Todavía no me funcionó, así que tuve que decirle a Grub dónde está la partición de intercambio:

gato / etc / fstab

Podía leer allí "# swap estaba en / dev / sda2 durante la instalación", así que edité grub nuevamente:

sudo gedit / etc / default / grub

Y agregado:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = deshabilitar resume = / dev / sda2"

La parte importante es "resume = / dev / sda2" pero lo anterior (intel blablabla) está ahí por otras razones. Bueno, el siguiente paso es:

sudo update-grub

Reinicie e intente nuevamente hibernar con algunas cosas que están sucediendo (por ejemplo, abrir una película con vlc) con:

sudo s2disk

Si las cosas siguen ahí después de reanudar, ha resuelto el problema.

4. Indicar a Ubuntu que use las nuevas cosas de hibernación que ha instalado en lugar de las predeterminadas

Ahora tiene que decirle a Ubuntu que use s2disk para hibernar en lugar de las cosas que vienen por defecto:

sudo gedit /etc/pm/config.d/00sleep_module

E inserte allí:

SLEEP_MODULE = "uswsusp"

Guarde y cierre el archivo. Entonces:

sudo gedit /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

E inserte allí:

[Vuelva a habilitar la hibernación por defecto en upower]

Identidad = usuario unix: *

Acción = org.freedesktop.upower.hibernate

ResultActive = yes

[Vuelva a habilitar la hibernación por defecto en logind]

Identidad = usuario unix: *

Acción = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; org.freedesktop.login1; org.freedesktop.login1.hibernate-multiple-sessions; org.freedesktop.login1.hibernate-ignore- inhibir

ResultActive = yes

Reinicie e intente nuevamente.

5. Si después de ejecutar el Paso 4, no puede hibernar usando sudo systemctl hibernate, haga lo siguiente

El paso 4 no es suficiente para hacer el cambio a uswsusp en Ubuntu 18.10.

Edite el servicio de hibernación

sudo systemctl edit systemd-hibernate.service

Y agregue lo siguiente

[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

Actualizar systemd

sudo systemctl daemon-reload

Pruebe la configuración ejecutando lo siguiente

sudo systemctl hibernate

Mefisto
fuente
Gracias, elegí el núcleo antiguo del menú de arranque e hibernar funciona con él. Veré los otros pasos de actualización más adelante, pero espero que arreglen el núcleo actual pronto.
Karim Sonbol
En realidad, elegí el núcleo antiguo una vez del menú de grub y luego hiberné. Cuando lo abro nuevamente y elijo la opción "Ubuntu" normal sin opciones avanzadas, recuerda mi elección y usa el núcleo antiguo, y afortunadamente todas mis aplicaciones abiertas están en su lugar.
Karim Sonbol
¿Hay alguna razón especial para no simplemente desinstalar el nuevo núcleo y apegarse al anterior?
lrkwz
3

@karim Tuve el mismo problema aquí es cómo se solucionó:

Use el UUID de la partición de intercambio en lugar de su punto de montaje en el parámetro RESUME resume=UUID=#en ambos /etc/default/gruby/etc/initramfs-tools/conf.d/resume

Cree una entrada para la partición de intercambio /etc/fstab sin un punto de montaje similar a este

# Entry for Swap : 
UUID=# none  swap    sw              0       0

En /etc/default/grubHe usado una entrada separada para reanudar la hibernación

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

Cree un juego de políticas en la autoridad local (pkla) como lo explica @Mephisto

Actualizar initramfs y GRUB

sudo update-initramfs -u -k all
sudo update-grub

Reinicie, abra algunas aplicaciones y use systemctl hibernate(sin sudo) para ver si funciona

Roey
fuente
Tenía todo configurado, excepto que 'sudo update-initramfs -u -k all' parecía solucionar mi problema. Gracias.
Zamicol
2

También estaba teniendo este problema que me atormentaba ... y una solución después de muchos intentos fue reinstalar Ubuntu 18.04, y ahora funciona perfectamente. También estoy usando el controlador "probado" de Nvidia, ya que Nvidia fue el culpable antes.

Quizás fue la ppa "sudo add-apt-repository ppa: graphics-drivers" la que instaló "Extra" Stuff y / o el controlador 396 que arruinó la capacidad de hibernación de mi computadora portátil. De cualquier manera, funciona sin problemas en este momento de escritura con el controlador probado de NVidia 390. Antes de cambiar al controlador Nouveau funcionó.

markackerman8-gmail.com
fuente
2

Gracias a todos por sus respuestas o comentarios. El problema se resolvió en Kernel 4.15. Lo probé ahora y funciona. Aparentemente, el núcleo HWE lo arregló ( linux-generic-hwe-16.04 package).

Si está utilizando Ubuntu 16.04, solo necesita instalar las últimas actualizaciones para actualizar el kernel. Puedes leer más detalles sobre eso aquí .

Mi versión actual del kernel es 4.15.0-33-generic.

Karim Sonbol
fuente