Hibernate funcionó correctamente cuando había estado usando Ubuntu 17.04. Después de la actualización a 17.10 no pude reanudar debido a la pantalla en negro después de reanudar ( este error ).
Después de la actualización a 18.04, si intento iniciar mi computadora después de la hibernación, se inicia como si no se hubiera hecho la hibernación.
Respuestas:
Se realizan cambios en la configuración predeterminada en comparación con LTS anterior (16.04). En mi caso, la hibernación no funcionó hasta que hice varios pasos, entre ellos, aumentar el tamaño del archivo de intercambio, encenderlo, asegurarme de que las políticas lo permitieran, etc.
Esta puede ser fácilmente mi respuesta más larga en StackExchange completo, así que intenté hacer que los encabezados sean descriptivos .
Botas ya que no hubo hibernación
Sería prudente echar un vistazo a sus registros (
dmesg
podría ayudar) y ver si hay algo allí. Hay razones por las cuales, a pesar de decirle al sistema que hiberne, en realidad no lo hará, o en su lugar se suspenderá a la RAM (suspensión).Echar un vistazo
kern.log
ysyslog
buscar cualquier mensaje relacionado con la hibernación no estaría tan mal. Las secciones que comienzan con "problema" pueden ayudarlo con problemas específicos.Intercambio de archivo o partición de intercambio
Uno de los cambios cruciales es que ahora NO TIENE una partición de intercambio, pero tiene un ARCHIVO de intercambio.
Es posible que el archivo de intercambio no funcione para su combinación de hardware / controladores / sistema operativo e hibernación.
Hibernación apagada
Las políticas también pueden desactivar o no permitir la hibernación.
Jerga
Suspender a RAM: la RAM mantiene los datos, la computadora se duerme más rápido, usa más energía cuando se suspende, se despierta más rápido. Algunos lo llaman sueño.
Suspender al disco, también conocido como hibernación. La RAM se guarda para intercambiar (partición o archivo), la computadora se va a dormir más lentamente, usa menos energía mientras hiberna, se despierta más lentamente.
Requisitos previos: ¿tiene suficiente espacio?
Para hibernar, debe (simplificar aquí) guardar toda la RAM en su disco duro. Por lo tanto, debe reservar suficiente espacio para hacerlo. Si no lo hace, esto fallará y no hibernará.
free -m
le dirá cuánta memoria tiene, usa y cuánta hay en su intercambio.df -h
le dirá cuánto espacio en disco tiene en cada punto de montaje y cuánto se usa, libre, etc. Esto es importante ya que es posible que luego desee especificar dónde se ubicará su archivo de intercambio o qué partición "recortar" para tener suficiente espacio para su intercambio.cat fstab
debería proporcionarle información si tiene una partición o archivo de intercambio. De acuerdo con Ubuntu Hibernation, las preguntas frecuentesswapfile
pueden no funcionar siempre con algunas combinaciones de hardware / controladores.Si no tiene suficiente espacio, siga las preguntas frecuentes de intercambio de Ubuntu . Le indica cómo aumentar el archivo de intercambio, agregar otro, verificar si se usa, etc. Con comandos y explicaciones. Muy buen recurso.
¡No tengo suficiente espacio para mi RAM!
Los documentos del kernel dicen:
Por lo tanto, intente ajustar el tamaño de su imagen. Cómo, haz otra pregunta por favor.
Prerrequisitos: ¿admite su núcleo la suspensión al disco?
Kernel admite todo lo que aparece en la lista
/sys/power/state
, así que:cat /sys/power/state
Animales (que yo sepa) las categorías allí incluyen:
mem
,standby
,freeze
,disk
. Explicación:mem
- tiene varios significados, cuál exactamente en su sistema lo encontrarácat /sys/power/mem_sleep
. Yo tengo:s2idle [deep]
standby
- Suspensión de encendido (si es compatible)freeze
- Suspender a inactivo (ITS)disk
- Suspender a disco (STD), hibernación . Esto, tú quieres.Entonces tenemos que verificar
cat /sys/power/disk
. Si tiene allídisabled
, sumérjase en su BIOS en busca de un arranque seguro; esa es la única idea que puedo ofrecer y lo único que sé puede interferir y apagar la hibernación. Si bien solo conozco SecureBoot, puede haber otras interferencias, por lo que echar un vistazo a su BIOS es una buena idea incluso si no tiene ningún "arranque seguro".Leyendo aquí:
TBH, incluso si su núcleo NO es compatible con la hibernación, puede intentarlo de otra manera, desplácese hacia abajo hasta la sección
Interfaces
.Lea esto - advertencias y problemas - no BTRFS
En ningún orden particular:
No use BTRFS ni hiberne: el resultado será datos corruptos.
Quiero hibernar - intercambiar partición
Hay casos en que las personas renuncian al archivo de intercambio y vuelven a la partición de intercambio. Después de todo, funcionó en LTS anteriores. No lo intenté, así que no ofreceré punteros.
Quiero hibernar - con archivo de intercambio
/etc/fstab
a uno nuevo. Reinicie para ver que el cambio se ha llevado bien (guarde una copia de seguridadfstab
para que pueda revertirlo fácilmente por si acaso).Parámetros del kernel? ¡De miedo!
Lea atentamente y decida si desea hacerlo, pero es solo una forma de configurar su núcleo. Puede ser más fácil hibernar a través de
systemd
yuswsusp
(ver Interfaces , más abajo). Puede ser que usted, como yo, finalmente decida que suspender a RAM es suficiente y que no desea tener 32 GB en un archivo de intercambio (por ejemplo, no tan bueno para las personas con un SSD en sus computadoras portátiles). ¡Pero!resume=
saber en qué partición está su archivo de intercambio yresume_offset=
saber desde dónde comenzar a reanudar el archivo de intercambio.resume=
apuntar a la partición de intercambio.resumedelay=
.Documentos del kernel sobre retrasar la reanudación de la hibernación:
Parámetros necesarios para el archivo de intercambio y la hibernación :
Para
resume=
elegir el mismo estilo queroot
tiene el elementofstab
. Entonces, o/dev/sdaX
oUUID
o LVM. Para hibernar a un archivo: proporcione una partición donde pueda encontrar su archivo.Leyendo:
Problema: no se encontró el encabezado de intercambio
El archivo de intercambio debe formatearse correctamente. Si sus registros le dicen esto, está intentando hibernar a un archivo o su parámetro de reanudar no es correcto.
Cambie a la partición o arregle el archivo o cambie la interfaz utilizada para la hibernación.
Ver: /unix/43508/debian-hibernate-problem-pm-swap-header-not-found
mkswap
se usa para formatear archivos, lea más sobre esto aquí¡Problema! ¡Hibernación no permitida!
Prueba:
pm-hibernate
(si el paquete pm-utils está instalado) osystemctl hibernate
decirle que no está permitido. Configuración predeterminada en Ubuntu desde IIRC 12.04.Solución (es): depende de su versión de Polkit, su versión de Ubuntu y su sabor ... Vea esta pregunta . Además, ArchWiki en Polkit puede ayudar.
Para Mint, consulte: https://forums.linuxmint.com/viewtopic.php?t=259912
¡Problema! ¡Hibernación deshabilitada por algo en BIOS!
Prueba:
cat /sys/power/disk
tienedisabled
. Los registros muestran "Error al hibernar el sistema a través de logind: el verbo de suspensión no es compatible".Solución: busque en su BIOS y encuentre la cosa problemática. Apágalo.
Solución 2: intente con otra interfaz de hibernación.
Ver: ¿Cómo activar la hibernación en 16.04.1? (systemd) .
Interfaces
Palabras de clausura
Para mí fue una cuestión de casi dos días de trabajo compilar eso. Esperemos que esto te ayude (y a otros) a resolver tu problema más rápido. Todavía faltan puntos, pero son las 2 AM y no tengo ganas de escribir más ahora. Por supuesto, estoy abierto a los consejos de cualquiera para mejorar esto, así que comenta. Contestaré una vez que duerma, trabajo, etc. :-)
No estoy seguro de que hibernar en el disco sea tan genial. Fui con dormir al final. Pero para mí el problema era tener un archivo de 32 GB solo para poder hibernar, ya que generalmente evito el intercambio. Mi archivo de intercambio inicial era de 2GB y estaba casi vacío. YMMV. Sin embargo, ¡buena suerte! ¡Y comience con los registros!
fuente
$ sudo apt install linux-generic-hwe-18.04
(para algunos hardware, inclusolinux-generic-hwe-18.04-edge
podría valer la pena intentarlo).Use el UUID de la partición de intercambio en lugar de su punto de montaje en el parámetro RESUME
resume=UUID=<#>
en ambos/etc/default/grub
y/etc/initramfs-tools/conf.d/resume
Cree una entrada para la partición de intercambio
/etc/fstab
sin un punto de montaje similar a esteEn
/etc/default/grub
He usado una entrada separada para reanudar la hibernaciónCrear un kit de políticas en la autoridad local (pkla)
E inserte allí
Después de esa actualización initramfs y GRUB
Reinicie, abra algunas aplicaciones y use
systemctl hibernate
(sin sudo) para ver si funcionafuente
Para mí, siempre funcionó hasta 18.04 y después de 18.04 lo habilité como está en muchos artículos, pero de repente dejó de funcionar ayer (funciona bien durante 4-5 meses),
y aquí está el ... UNA COSA que lo hizo funcionar de nuevo ...
Dile a grub2 dónde está la partición de intercambio:
Primero descubra en qué partición está usando el siguiente comando:
El mío está en sda7 como es el siguiente resultado:
Luego, agregue en Grub2 la siguiente adición a la siguiente línea, utilizando el siguiente comando:
sudo gedit / etc / default / grub
La parte importante es
resume=/dev/sda7
Luego actualice Grub con el siguiente comando, y después de esto, comenzó a funcionar perfectamente nuevamente:
Después de muchos intentos, esto fue lo único que funcionó, tal vez fue solo debido a una actualización del núcleo que lo arruinó, sin embargo, esto funcionó.
fuente
Espero que esto ayude a alguien, pero estoy ejecutando popos / ubuntu 19.04. En mi configuración pude hibernar usando s2disk o pm-hibernate, pero la reanudación estaba fallando. Para solucionar esto, mi sistema se inicia usando UEFI en lugar de grub. Solo tuve que reinstalar el gestor de arranque. Para verificar si está ejecutando UEFI use lo siguiente:
[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"
si está en modo UEFI, seguí esta guía para reinstalar el gestor de arranque, varía si está utilizando un disco nvme o un disco sata: https://support.system76.com/articles/bootloader/
asegúrese de que en sus opciones de inicio de kernel especifique la partición o UUID de dónde reanudar, por ejemplo, algo como esto:
resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Puede agregar esto: 1) sudo kernel-stub -a "resume = UUID = ..." 2) edite el archivo /etc/initramfs-tools/conf.d/resume y agregue: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88
compruebe su archivo / var / log / syslog para ver algo como esto: 4 de agosto 22:26:42 pop-os / usr / bin / kernelstub [19639]: kernelstub: DEBUG kopts: root = UUID = b37019a8-91f5-445f-94c1 -7359a49ed5df ro quiet loglevel = 0 systemd .show_status = false resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Si falta el currículum o está mal, necesitará actualizar su kernel de arranque nuevamente.
fuente
Además de configurar el punto de reanudación de intercambio en grub mencionado en la respuesta de Sam73 , descubrí que mi Ubuntu 18.04 también necesita instalarse
laptop-mode-tools
:luego cambie
ENABLE_LAPTOP_MODE_ON_AC=1
en el archivo de configuración:iniciar el modo portátil con:
PD: puede verificar si la computadora portátil se inicia o no con
Si se imprime
0
,laptop_mode
no funciona, de lo contrario, indica que funciona bien.fuente