Hibernar con archivo de intercambio usando uswusp
Aunque es posible hibernar para intercambiar archivos y supuestamente funciona con systemd hibernate configurando los parámetros del kernel. Sin embargo, no pude reanudarlo, así que en lugar de eso usé uswsusp (suspensión del software del espacio de usuario) . Estos son los pasos que utilicé en Ubuntu 17.04 / 17.10.
Crear el archivo de intercambio
Los comandos para crear un archivo de intercambio 4GiB formateado, montado y agregado a /etc/fstab
:
sudo fallocate -l 4g /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
Verifique la partición del archivo de intercambio
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
Instalar suspensión de software de espacio de usuario (uswsusp)
sudo apt install uswsusp
Configurar uswsusp
Para crear /etc/uswsusp.conf
y recrear initramfs
:
sudo dpkg-reconfigure -pmedium uswsusp
Yes
¿ Continuar sin un espacio de intercambio válido? ' (El asistente aún no establece el archivo de intercambio).
- Seleccione la partición en la que reside el archivo de intercambio, haga una referencia cruzada con los detalles de
findmnt
arriba. ( Nota: no el archivo de intercambio en sí )
Nota: Cualquier cambio realizado manualmente /etc/uswsusp.conf
requerirá volver a initramfs
crearse luego con este comando:
sudo update-initramfs -u
Prueba uswusp hibernate
sudo s2disk
Debería haber snapshot
mensajes en la pantalla sobre hibernar y reanudar.
Utilice s2disk con systemd hibernate
Por defecto, systemd usará sus propios comandos de hibernación, así que reemplácelos con los comandos uswusp anulando systemd-hibernate.service
:
sudo systemctl edit systemd-hibernate.service
En el editor de texto que se abre, coloque el siguiente texto (se requiere ExecStart en blanco). Luego guarde y salga:
[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep
Esto creará un /etc/systemd/system/systemd-hibernate.service.d/override.conf
archivo con detalles de anulación.
Prueba systemd hibernate:
systemctl hibernate
Nota: Para verificar que el systemd override.conf
ha sido creado, cargado y sin errores, ejecute:
systemctl status systemd-hibernate.service
Referencias
ExceStart=run-parts -a post /lib/systemd/system-sleep
fuera asíExceStartPost=run-parts -a post /lib/systemd/system-sleep