Cómo hibernar en Ubuntu 18.04 LTS, 19.10, 20.04, o Linux Mint y derivadas

AVISO IMPORTANTE: Las distintas distribuciones de GNU/Linux han quitado la opción de hibernar, porque genera muchos problemas. tanto de incompatibilidad con mucho ordenadores, como fallos puntuales. Nosotros hemos probado y ahora mismo funciona, pero no sabemos si después de una actualización de tu distribución Linux, mañana por ejemplo, dejará de funcionar. Es por ello que deberás asegurarte cuando hibernes, que el ordenador está completamente apagado, antes de meterlo en un maletín y que se sobre-caliente.

Para poder activar la hibernación en tu portátil, lo primero que debes saber es que has de tener en la bios desactivado el Secure Boot, y has de haber instalado así el sistema operativo, no se puede cambiar a las bravas. Y lo segundo que has de saber es que vas a perder un trozo de disco duro, ya que has de reservar el espacio. Aunque desde Ubuntu 18 ya no hay partición swap, si no un fichero pequeño y dinámico, ahora has de fijarle un tamaño, concretamente el tamaño de tu memoria RAM (o algo más por precaución).

Puedes mirar gráficamente cuanta RAM tiene tu ordenador, o puedes comprobarlo via terminal con:

free

Del comando de arriba quedarte con el primer valor de memoria, o si quieres usa este otro comando:

vmstat -s | awk '{print int(($1 / 1024 / 1024)+0.51)}' | head -1

Si tuvieras la swap ya activa, primero hemos de detenerla, para poder luego redimensionarla. Detenla con este comando:

sudo swapoff -a

Crea el fichero de swap con el tamaño de tu ram, yo pongo en mi ejemplo 16 GB, pero cambia el número por tu RAM o un poco más:

sudo fallocate -l 16g /swapfile

Dale permisos y añádelo al fichero fstab con:

sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Mira si ya tienes el el fichero /etc/fstab una linea que empiece por /swapfile, si no la tienes añádela con esto:

echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

Montamos y verificamos:

sudo findmnt -no SOURCE,UUID -T /swapfile

Nos mostrará algo como esto: /dev/sda1 0c233fbb-f72e-470f-8460-4f2521bf3569
La segunda parte después de sda1 (o nvme0n1p1 o tu lvm) es el UUID de la partición y tienes que apuntártela, o copiarla.

Ahora instalamos y configuramos uswsusp:

sudo apt install uswsusp
sudo dpkg-reconfigure -pmedium uswsusp

Te preguntará si quieres continuar sin validar swap, respondes "".
Luego te dirá que selecciones la partición, y NO has de elegir /swapfile, y el UUID que has apuntado antes.
En cifrar la partición hibernada diremos NO para que no nos pide una contraseña adicional para desbloquearlo, con cerrar sesión que lo hace, es suficiente.

Por si acaso ahora:

sudo update-initramfs -u

Es hora de probar si la hibernación funciona con este comando (espera un minuto):

sudo s2disk

Estos pasos son solo para Linux Mint:
Si no ha vuelto a tu sesión después de hibernar, haz estos pasos, pero si ha ido bien, no lo hagas:

sudo nano /etc/default/grub

y añadir en la linea GRUB_CMDLINE_LINUX_DEFAULT="quiet splash", antes de cerrar las comillas resume=UUID= con el identificador de tu partición que hemos copiado antes, o sea en nuestro caso quedaría así:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=0c233fbb-f72e-470f-8460-4f2521bf3569"
sudo update-grub
reboot

Fin de los pasos para Linux Mint

Ahora tenemos que editar el servicio de hibernación para que utilice el nuevo método:

sudo systemctl edit systemd-hibernate.service

Y dentro pegamos:

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

Volvemos a probar la hibernación, pero ahora con el servicio:

systemctl hibernate

Si no funciona puedes ver el estado y ver los errores que muestra:

systemctl status systemd-hibernate.service

Ahora que todo funciona correctamente, sólo tenemos que al apagar el ordenador, aparezca la opción de hibernar junto a la de reiniciar o suspender.
Vamos a crear un fichero nuevo con:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

y dentro pagamos a pegar esto y guardar:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
 
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

Ahora reiniciamos el ordenador y ya estará listo :)
Adicionalmente en Gnome Shell existen extensiones como esta para que el botón esté más accesible.

Cómo hibernar en Ubuntu 18.04 LTS, 19.10, 20.04, o Linux Mint y derivadas
Eusebio Giner Slimbook
9 enero, 2020
Compartir
Categorías
Editar
Linux ubuntu
ArchivO