PM: La imagen de hibernación no está presente o no se pudo cargar

PM: La imagen de hibernación no está presente o no se pudo cargar

Después de hibernar con systemctl hibernate, el sistema arranca normalmente como si se hubiera apagado. Tengo el parámetro resume en la línea del kernel y el gancho resume en mkinitcpio.conf

Estos son los mensajes relevantes del kernel:

$ dmesg | grep -i swap
[    0.000000] Command line: initrd=\initramfs-linux.img root=/dev/sda2 rw resume=/dev/sda4
[    0.000000] Kernel command line: initrd=\initramfs-linux.img root=/dev/sda2 rw resume=/dev/sda4
[    0.350295] PM: Checking hibernation image partition /dev/sda4
[    8.776686] Adding 8191996k swap on /dev/sda4.  Priority:-1 extents:1 across:8191996k FS
$ dmesg | grep -i hibern
[    0.350295] PM: Checking hibernation image partition /dev/sda4
[    0.350301] PM: Hibernation image not present or could not be loaded.

Entonces la única posibilidad que queda es quesystemctl no escribió en el disco. De hecho, cuando ejecuto el comando, la pantalla primero se queda en blanco durante un par de segundos, luego puedo ver mi terminal nuevamente y finalmente se apaga solo.

Leí que pm-utils no funciona muy bien con systemd, así que no me gustaría cambiar a ellos. ¿Alguna sugerencia?

¡Gracias!

Respuesta1

Para elaborar el comentario de @AdrianRatnapala, debes:

  1. Encuentre el uuid de su partición de intercambio. Supongamos que la partición es sdb3, entonces

    $ ls -l /dev/disk/by-uuid/ | grep sdb3
    lrwxrwxrwx 1 root root 10 окт.   9 08:59 1dd7e123-1f82-45f0-a202-0ff3ea6f081a -> ../../sdb3
    
  2. Abra /etc/default/gruby busque la línea que comienza con GRUB_CMDLINE_LINUX_DEFAULT=". Agregue allí entre comillas resume=/dev/disk/by-uuid/your-swap-uuid. Como ejemplo:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/disk/by-uuid/1dd7e123-1f82-45f0-a202-0ff3ea6f081a"
    
  3. Ejecutar como rootupdate-grub
  4. Es necesario reiniciar para utilizar la nueva línea de comandos del kernel.

Respuesta2

Quiero compartir mi éxito aquí porque podría ayudar a otros con este problema. En pocas palabras, para aquellos que quieran omitir los detalles: después de cambiar la línea GRUB_CMDLINE_LINUX_DEFAULT en el archivo /etc/default/grub y realizar update-grub, apague y reinicie completamente la máquina antes de probar la hibernación.

Los detalles: Acabo de implementar con éxito la hibernación en la instalación de Linux de mi Lenovo ThinkPad T480 (arranque dual Debian 9 y Windows) siguiendo el consejo anterior para agregar un parámetro resume=UUID= a la línea GRUB_CMDLINE_LINUX_DEFAULT en /etc/default/grub. Pero no funcionó la primera vez. Agregué el parámetro, ejecuté update-grub e intenté hibernar (systemctl-hibernate). El sistema parecía hibernar, pero cuando se volvía a encender, la imagen de la pantalla anterior aparecía y permanecía durante varios segundos antes de que la máquina ingresara a la pantalla de inicio de sesión que generalmente se presenta en el inicio inicial; todo el trabajo presente antes de que desapareciera la hibernación. Finalmente noté (syslog grep 'línea de comando') que la línea GRUB_CMDLINE_LINUX_DEFAULT modificada NO se había pasado al kernel. Después de más esfuerzo, descubrí que un apagado completo y un reinicio darían como resultado que se pasara la línea modificada (grep 'línea de comando' syslog nuevamente). Después de eso, systemctl hibernate indujo la hibernación como antes, pero al encender el estado anterior de la máquina se restauró correctamente.

información relacionada