[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Hibernación

La hibernación (también conocida como suspensión en disco) es un método utilizado para apagar una computadora y preservar el estado del sistema operativo. Una vez encendido, el sistema operativo estará en el estado exacto tal como estaba en el momento de la hibernación.

En Slackware, la hibernación funciona de forma inmediata. Sin embargo, para poder reanudar con éxito un estado de hibernación, debe configurar el cargador de arranque para que sepa dónde ubicar los datos.

Hibernar

Entornos de escritorio

KDE, XFCE y otros desktop ofrecen hibernación desde la pantalla/menú de cierre de sesión.

Gestores de ventanas ligeros

Puedes hibernar tu sistema desde la consola. Ya sea como root a través de pm-utils o D-Bus con programas adicionales como usuario regular.

pm-utils

La hibernación se realiza mediante el comando pm-hibernate .

D-Bus

Slackware ofrece dos servicios para controlar la administración de energía en sus versiones recientes. UPower y HAL. Dado que HAL está en desuso en Slackware 14.0, use HAL en versiones anteriores de Slackware (de 12.0 a 13.37), de lo contrario use UPower.

Utilice uno de estos comandos para hibernar su sistema.

UPower
 $ dbus-send --system --print-reply --dest="org.freedesktop.UPower" \
 /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
HAL
$ dbus-send --system --print-reply --dest="org.freedesktop.Hal" \
 /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate

Configuración del Bootloader

Arranque desde LVM

LILO no admite el arranque desde LVM, por lo tanto, tiene que crear el ramdisk inicial (initrd). Necesitas uno aunque tu kernel tenga soporte incorporado para LVM.

No tiene que ajustar especialmente lilo.conf porque puede configurar todo lo relacionado en resume-related initrd.

mkinitrd -c -k <kernel-version> -f <fs_type> -m <modules_required_to_boot> -r <root_partition> -h /dev/volumegroup/swap -L

* -h configura tu hibernación /swap volumen lógico

  • -L activar LVM

Configuración de LILO

El siguiente paso es asegurarse de que su lilo.conf contiene el siguiente fragmento de código

image = /boot/vmlinuz
  root = /dev/sdaX
  initrd = /boot/initrd.gz
  label = Slackware
  read-only # Partitions should be mounted read-only

Si no usa LVM, simplemente puede decirle al kernel de dónde reanudar agregando la línea adjunta:

append="resume=/dev/sdaX"

Reemplace /dev/sdaX con su partición de intercambio real.

Luego, ejecute lilo para guardar los cambios.

$ lilo

Bloquea tu computadora al reanudar

Es posible que haya notado que cuando su computadora se reanuda, no hay protección para garantizar que nadie pueda usarla. Como pm-hibernate debe ejecutarse como root, a cualquier usuario que encienda su computadora se le otorgará un terminal de root. Te mostraré algunos trucos para asegurar un correcto bloqueo del sistema.

Advertencia de seguridad: si está utilizando el truco desde la línea de comandos o desde una sesión de X, ¡no olvide cerrar la sesión de todos los demás ttys! Ninguno de ellos se bloqueará, por lo que las personas que emitan CTRL+ALT+F1 (con cualquier tecla de Fx) al reanudar el acceso podrán acceder a ellos, haciendo que el truco de bloqueo sea totalmente inútil.

Con pm-utils

Desde la línea de comando

Si no tiene una sesión X abierta, la única manera de bloquear su computadora es cerrar la sesión de su sesión antes de la hibernación. Puedes usar el siguiente comando:

pm-hibernate & logout (OR pm-hibernate & exit)

¡Es importante cerrar sesión en cada tty antes de la hibernación! logout solo lo desconectará de la terminal desde donde ejecutó el comando. Por favor lea la advertencia en la siguiente sección.

Es posible que este truco no funcione en sistemas rápidos, ya que el “cierre de sesión” puede no tener suficiente tiempo para completarse. Puede pensar que usar ; en lugar de & podría hacer el truco (ya que desconectará al usuario después de reanudar), pero le permite al usuario hacer una <clave> CTRL + C </key> al reanudar, matar el comando cerrar sesión.

De una sesión X

Si desea bloquear el equipo antes de la hibernación, puede usar el siguiente comando (como root, por supuesto):

# xlock & sleep 5 ; pm-hibernate

También puede crear el siguiente script:

#!/bin/bash
echo 'Hibernating in 5 seconds'
xlock &
sleep 5
pm-hibernate

xlock es un comando que bloquea tu sesión X. Al reiniciar, se le pedirá la contraseña de root. El comando “sleep” puede omitirse, pero creo que es más seguro dejarlo, por lo que está seguro de que “xlock” tiene suficiente tiempo para ejecutarse correctamente. No tiene que usar exit (o logout) al final del comando o la secuencia de comandos, ya que no tiene ningún uso con respecto a la seguridad. Es posible que desee utilizarlo para cerrar automáticamente el xterm al reanudar.

Advertencia de seguridad: ¡este “truco” solo bloqueará el sistema X! Si ha iniciado sesión como root en cualquiera de los otros ttys, xlock puede eliminarse, dejando acceso completo a la sesión de X.
Para las personas que usan init3 (sin inicio automático de X), recuerde también cerrar la sesión desde tty desde donde lanzó el sistema X con startx: presione CTRL+Z (para suspender la tarea), luego bg (para reanudar la tarea en segundo plano), luego CTRL+D (o logout) para cerrar sesión.

Una alternativa

Si estás usando sudo, entonces también se puede usar lo siguiente:

sudo /usr/sbin/pm-hibernate

Lectura adicional

Fuentes

 es:howtos:slackware_admin:hibernation ()