(3 respuestas)
Cerrado hace 2 años.
Hibernación en mi Ubuntu 18.04 no funcionó de fábrica (me refiero a sudo systemctl hibernate
). Así que hice varios intentos de arreglar eso hace algún tiempo y lamentablemente no puedo recordar exactamente lo que hice.
Pero ahora:
sudo hibernate
hiberna con éxito el sistema y en el próximo arranque el estado del sistema se restaura con éxito, excepto que no aparece la pantalla de inicio de sesión, lo cual no es bueno. Y si tengo muchas aplicaciones ejecutándose, después de una reanudación de este tipo, el sistema puede congelarse hasta por 20 minutos (veo las ventanas de las aplicaciones, puedo mover el puntero del mouse, pero el sistema no responde a los clics), pero luego funciona normalmente.
sudo systemctl hibernate
hace algo, apaga el sistema, pero en el siguiente arranque veo varios mensajes eliminar nodo huérfano y finalmente arranque limpio, como si no hubiera hibernación.
Por favor, ayúdame a aclararlo y habilitar la hibernación en la interfaz gráfica de usuario.
Al mismo tiempo, suspender en la memoria y reanudar desde la memoria funciona bien sin problemas, incluida la pantalla de inicio de sesión en la reanudación .
La pregunta principal que tengo es:¿Cuál de los dos mecanismos hibernate
o systemctl hibernate
debo usar con 18.04?
Detalles
El sistema tiene una partición de intercambio
$ lsblk | grep SWAP
└─sda5 8:5 0 16,8G 0 part [SWAP]
$ free -m
total used free shared buff/cache available
Mem: 15894 3386 9945 1311 2561 11848
Swap: 17163 2150 15013
y en /etc/default/grub
tiene
GRUB_CMDLINE_LINUX_DEFAULT=”quit splash resume=/dev/sda5″
GRUB_CMDLINE_LINUX=””
y
$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume
[SOLUCIONADO] 🙂
Finalmente logré llevar la hibernación al trabajo. Mientras no tenga un conocimiento profundo del tema, prefiero describir lo que hice. Entonces
- Eliminó por completo pm-utils y uswsusp , luego
sudo update-initramfs -c -k all
yreboot
Después de este intento de hibernación, terminó en un inicio limpio en lugar de reanudar. Entonces
- Reinstalado systemd luego cambió los nombres de los dispositivos a UUID para
en /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=”resumen de inicio silencioso=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1″
en /etc/initramfs-tools/conf.d/resume
RESUME=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1
entonces
$ sudo update-initramfs -c -k all
$ sudo update-grub
$ reboot
Después de esto sudo systemctl hibernate
y la reanudación tuvo éxito pero sin la pantalla de inicio de sesión, por lo que
- En Configuración (gui) para la acción del botón de encendido asigné "Hibernar"
Ahora, cuando presiono el botón de encendido, el sistema hiberna y luego se restaura a través de la pantalla de inicio de sesión.
Muchas gracias a todos los involucrados
UPD:ahora encontré una solución aún mejor:use el archivo de intercambio
Verifiqué esto en una nueva instalación de escritorio de Ubuntu 18.10 y supongo que también funciona con una nueva instalación de escritorio 18.04, ya que ambos usan el archivo de intercambio. de forma predeterminada, es decir, no asignan la partición de intercambio por defecto. Pero el archivo de intercambio predeterminado es de 2 Gb, independientemente del tamaño de la memoria del sistema, por lo que debe aumentarse.
La descripción completa está, por ejemplo, aquí.
Mejor respuesta
Hay dos excelentes respuestas a las preguntas sobre la hibernación con un poco más de detalle aquí:
Pequeño Kami del Bosque Antiguo La respuesta a:Ubuntu 18.04 no se puede reanudar después de hibernar
Relacionado:¿Deja-dup sigue pidiendo contraseña?Zana La respuesta de:¿Cómo puedo hibernar en Ubuntu 16.04?
Normalmente no uso Hibernate, pero intenté usarlo recientemente mientras buscaba un error y me di cuenta de que para trabajar en 18.04 necesita agregar una línea a /etc/default/grub para indicarle dónde continuar.
El 16.04 no fue necesario que agregara el parámetro 'resume=' a grub, así que creo que el cambio ocurrió hace relativamente poco tiempo.
Probablemente sea mejor usar el UUID (Universally Unique Identifier) y puede usar el programa 'Disks' para averiguar el UUID de su partición de intercambio y simplemente copiarlo y pegarlo desde allí.
Usa sudo nano /etc/default/grub
para agregar a la línea
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
para que tenga el parámetro adicional del núcleo resume=UUID=theUUIDofyourswappartition
entre comillas.
El tuyo será diferente, pero en mi caso la línea es:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"
(salir de nano usando Ctrl +x , presione y para hacer los cambios y ingresar para aceptar el nombre del archivo)
Debes ejecutar sudo update-grub
para que sus cambios sean efectivos, pero la próxima vez que reinicie debería poder hibernar sin problemas.
Hasta donde yo sé, la funcionalidad de hibernación es reanudar donde lo dejó, por lo que no está diseñado para ir a la pantalla de inicio de sesión y solicitar su contraseña.
No sé si puede cambiarlo para que le pida su contraseña, pero podría valer la pena hacer una pregunta por separado para ver si alguien más sabe qué hacer.
Archivo de intercambio
Si tiene un archivo de intercambio en lugar de una partición de intercambio separada, también debe agregar el resume_offset=
adicional parámetro.
Arch Linux Wiki tiene una gran sección sobre esto, pero básicamente su archivo de intercambio debe estar en la partición principal en la que tiene instalado Ubuntu.
Para averiguar el desplazamiento a poner en resume_offset=
puedes abrir una terminal y escribir
sudo filefrag -v /swapfile
obtendrás algo parecido a esto:
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
3: 96256.. 126975: 133120.. 163839: 30720:
etc...
y quiere el primer número, en la primera línea que está debajo de physical_offset
(en este caso 34816
)
Entonces, solo como ejemplo, usando el UUID y el desplazamiento físico de mi máquina con un archivo de intercambio, cambié el GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
línea para ser
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=09e601cd-5bac-491a-9115-fda1b2eb4664 resume_offset=34816"
No olvides ejecutar sudo update-grub
y reinicie, pero después de eso, la hibernación debería funcionar correctamente.