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.confy 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
findmntarriba. ( Nota: no el archivo de intercambio en sí )
Nota: Cualquier cambio realizado manualmente /etc/uswsusp.confrequerirá volver a initramfscrearse luego con este comando:
sudo update-initramfs -u
Prueba uswusp hibernate
sudo s2disk
Debería haber snapshotmensajes 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.confarchivo con detalles de anulación.
Prueba systemd hibernate:
systemctl hibernate
Nota: Para verificar que el systemd override.confha sido creado, cargado y sin errores, ejecute:
systemctl status systemd-hibernate.service
Referencias
ExceStart=run-parts -a post /lib/systemd/system-sleepfuera asíExceStartPost=run-parts -a post /lib/systemd/system-sleepenableopción desystemctlenlaces simbólicos de/etc/systemd/system/a/lib/systemd/system/. Nunca debe copiar directamente en/etc/systemd/system/sudo s2disksolo registraSaving snapshot, que apaga la pantalla, se cuelga durante ~ 5 min y luego apaga la computadora. Sin embargo, después de encenderlo, arranca normalmente como si no hubiera habido hibernación.sudo findmnt -no SOURCE,UUID -T /mnt/4GiB.swapdebería cambiarse asudo findmnt -no SOURCE,UUID -T /swapfileEsto es lo que hice para que funcione con Ubuntu 18.04.
Haga que
/swapfiletenga al menos el tamaño de su RAMTenga en cuenta el UUID de la partición que contiene su
/swapfile:Reconfigure el paquete
uswsusppara usar correctamente el archivo de intercambio:Edite el servicio de hibernación SystemD usando
sudo systemctl edit systemd-hibernate.servicey complételo con el siguiente contenido:Tenga en cuenta la compensación de reanudación de su
/swapfile:Configure Grub para reanudar desde el archivo de intercambio editando
/etc/default/gruby modifique la siguiente línea:Actualizar Grub:
Crea lo siguiente
/etc/initramfs-tools/conf.d/resume:Actualizar initramfs:
Ahora puedes hibernar con
sudo systemctl hibernate.También se pueden crear esos scripts:
Para que pueda dormir
gotosleepo hibernar congotohibernation.Debe poder ejecutar
sudo s2both,sudo s2ramysudo systemctl hibernatesin tener que ingresar su contraseña para que los scripts anteriores funcionen.Podría hacerlo, por ejemplo, creando un
powerdevgrupo, agregue su usuario actual y configure la siguiente configuración de sudoers (edítela consudo visudo -f /etc/sudoers.d/powerdev):Documentación utilizada:
fuente
Leí rápidamente el tutorial y, si lo he entendido correctamente, solo necesita especificar las
resumeopciones en la línea de comandos de Linux. Con Grub2 es realmente simple, y sus cambios siempre se conservarán. Necesita editar el/etc/default/grubarchivo, específicamente esta línea:Después de eso, corre
sudo update-grubpara que los cambios surtan efecto.El cambio
GRUB_CMDLINE_LINUXno afectará a otras instalaciones de Linux que tenga (porque/etc/grub.d/30_os-proberno usa esta variable).Sobre el problema que tiene: ¿está encriptada la partición del archivo de intercambio? Si es así, la hibernación no funcionará. Si no, entonces la salida de
filefrag -v /swapfilepuede ser útil.fuente
/etc/default/grubdebes correrupdate-grub.