Antes de comenzar, quiero darles
Algunas aclaraciones:
Si no quiere leer el articulo completo y quiere los comandos directamente, se los dejo al final en la sección “Resúmen”
Funciona en Ubuntu? - Sí, aunque no lo probé, Linux Mint y Ubuntu son practicamente hermanos, de lo que no estoy seguro es de si una vez terminado el proceso, Ubuntu activará la opción de hibernar, esto dependerá del escritorio que estés utilizando.
Funciona con partición swap? - Claro! pero tendrás que adaptar los comandos para que apunten a tu partición swap, este tutorial, así como está va orientado a trabajar con el archivo swap y no con la partición swap.
Agradecimiento
Esta información la tomé de @gm10 un usuario que ya no existe en los foros de Linux Mint en ingles. Si estás leyendo esto, gracias… nos facilitaste la vida a varios.
¿Que ganamos habilitando la hibernación?
Se añade el botón de “Hibernar” en las opciones de apagado del menú de inicio.
Se añaden opciones relacionadas con la hibernación dentro de Configuración del sistema → Energía, como la suspensión híbrida o bien “suspender y luego hibernar” (en mi caso prefiero la suspensión híbrida, suspende el equipo a la vez que lo hiberna, siempre despertarás el equipo de la suspensión a menos que la luz se corte y ahí se usa la hibernación)
Ya sabiendo esto, comencemos…
Lo primero es modificar/crear el archivo swap, tenemos que darle un tamaño igual (no recomiendo) o mayor a la RAM instalada en tu equipo (recomendado) por ejemplo, 1GB más.
Todos los comandos que siguen, asumirán que su archivo swap estará ubicado en /swap (carpeta raíz), trate de no utilizar ubicaciones personalizadas, pero puede hacer su test, lo maximo que ocurrirá es que no se habilite la hibernación, pero no romperá nada.
Verifique la RAM total instalada en su sistema
free -h
Presione enter
En nuestro caso es 5.7GiB
Ahora tecleamos
sudo swapoff -a
Presione enter
Esto “apagará” el archivo swap actual
Declaramos una variable
SIZE=7
(Esto representa el tamaño que tendrá el archivo swap, recuerda 1GB más que tu RAM, en nuestro caso tenemos casi 6GB de RAM) Asegúrese de tener espacio disponible.
Presione enter
Ahora, copie y pege todo esto en la terminal (NO linea por linea, seleccione todo, copie todo y pegue todo en la terminal)
sudo dd if=/dev/zero of=/swapfile bs=1M count=$(($SIZE * 1024)) sudo chmod 0600 /swapfile sudo mkswap /swapfile sudo sed -i '/swap/{s/^/#/}' /etc/fstab sudo tee -a /etc/fstab<<<"/swapfile none swap sw 0 0"
Presione enter (Tardará según la velocidad de escritura de su disco, intente no realizar tareas durante el proceso)
Esto crea el archivo de intercambio y configura el sistema para usarlo. También deshabilita cualquier espacio de intercambio existente que ya haya configurado porque eso puede generar conflictos (es posible utilizar múltiples espacios de intercambio, pero esto no se cubrirá en el tutorial).
Si todo sale bien verá algo como:
22528+0 registros leídos
22528+0 registros escritos
23622320128 bytes (24 GB, 22 GiB) copied, 117,02 s, 202 MB/s
Configurando espacio de intercambio versión 1, tamaño = 22 GiB (23622316032 bytes)
sin etiqueta, UUID=973f6645-962c-4653-9081-e4e6b0263c4d
/swapfile none swap sw 0 0
ahora copie y pegue lo siguiente en la terminal
RESUME_PARAMS="resume=UUID=$(findmnt / -o UUID -n) resume_offset=$(sudo filefrag -v /swapfile|awk 'NR==4{gsub(/\./,"");print $4;}') "
Presione enter
Ahora esto:
if grep resume /etc/default/grub>/dev/null; then echo -e "\nERROR: Hibernation already configured. Remove the existing configuration from /etc/default/grub and add these parameters instead:\n$RESUME_PARAMS";else sudo sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$RESUME_PARAMS/" /etc/default/grub;fi
Presiona enter
Actualiza el grub
sudo update-grub
Presione enter
Ahora copie todo y pegue todo esto en la terminal
sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla <<'EOB'
[Enable hibernate]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes
EOB
Presione enter
Finalmente reinicie su equipo y corrobore que las opciones de hibernación están activas y funcionando, testee.
Sin nada más que decir, fue un gusto. Comentame como te fué.
RESÚMEN
1
swapon
2
sudo swapoff -a
3
SIZE=4
4
sudo dd if=/dev/zero of=/swapfile bs=1M count=$(($SIZE * 1024))
sudo chmod 0600 /swapfile
sudo mkswap /swapfile
sudo sed -i '/swap/{s/^/#/}' /etc/fstab
sudo tee -a /etc/fstab<<<"/swapfile none swap sw 0 0"
5
RESUME_PARAMS="resume=UUID=$(findmnt / -o UUID -n) resume_offset=$(sudo filefrag -v /swapfile|awk 'NR==4{gsub(/\./,"");print $4;}') "
6
if grep resume /etc/default/grub>/dev/null; then echo -e "\nERROR: Hibernation already configured. Remove the existing configuration from /etc/default/grub and add these parameters instead:\n$RESUME_PARAMS";else sudo sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$RESUME_PARAMS/" /etc/default/grub;fi
7
sudo update-grub
8
sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla <<'EOB'
[Enable hibernate]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes
EOB
Probar…