Hibernate fonctionnait correctement lorsque j'utilisais Ubuntu 17.04. Après la mise à niveau vers 17.10, je n'ai pas pu reprendre à cause d'un écran noir après la reprise ( ce bug ).
Après la mise à niveau vers 18.04 si j'essaie de démarrer mon ordinateur après l'hibernation, il démarre comme s'il n'y avait pas d'hibernation.
Réponses:
Des modifications ont été apportées aux paramètres par défaut par rapport au LTS précédent (16.04). Dans mon cas, l'hibernation n'a pas fonctionné jusqu'à ce que j'aie effectué plusieurs étapes, dont l'augmentation de la taille du fichier d'échange, l'activation, la vérification des stratégies, etc.
Cela peut facilement être ma réponse la plus longue sur StackExchange entier, j'ai donc essayé de rendre les en-têtes descriptifs .
Bottes car il n'y avait pas d'hibernation
Il serait prudent de jeter un œil à vos journaux (cela
dmesg
pourrait aider) et de voir s'il y a quelque chose. Il y a des raisons pour lesquelles malgré le fait que vous ayez dit au système d'hiberner, il ne le fera pas, ou il suspendra à la place (RAM).Regarder
kern.log
etsyslog
rechercher des messages liés à l'hibernation ne ferait pas aussi mal. Les sections commençant par «problème» peuvent vous aider avec des problèmes spécifiques.Fichier d'échange ou partition d'échange
L'un des changements cruciaux est que maintenant vous N'AVEZ PAS de partition de swap, mais vous avez un fichier de swap.
Le fichier d'échange peut ne pas fonctionner pour votre mélange matériel / pilotes / système d'exploitation et hibernation.
Hibernation désactivée
Les stratégies peuvent également désactiver ou interdire l'hibernation.
Jargon
Suspendre à la RAM - La RAM conserve les données, l'ordinateur s'endort plus rapidement, utilise plus d'énergie lorsqu'il est suspendu, se réveille plus rapidement. Certains appellent cela le sommeil.
Suspendre sur le disque - alias hibernation. La RAM est enregistrée pour permuter (partition ou fichier), l'ordinateur se met en veille plus lentement, utilise moins d'énergie en hibernation, se réveille plus lentement.
Prérequis - avez-vous suffisamment d'espace?
Pour hiberner, vous devez (simplification ici) enregistrer l'intégralité de votre RAM sur votre disque dur. Vous devez donc réserver suffisamment d'espace pour le faire. Sinon, cela échouera et vous n'hibernerez pas.
free -m
vous dira combien de mémoire vous avez, utilisez et combien il y a dans votre swap.df -h
vous indiquera la quantité d'espace disque dont vous disposez sur chaque point de montage et la quantité utilisée, gratuite, etc. assez d'espace pour votre échange.cat fstab
devrait vous donner des informations si vous avez une partition ou un fichier d'échange. Selon Ubuntu Hibernation, la FAQswapfile
peut ne pas toujours fonctionner avec certaines combinaisons de matériel / pilotes.Si vous n'avez pas assez d'espace, suivez la FAQ sur le swap Ubuntu . Il vous indique comment augmenter le fichier d'échange, en ajouter un autre, vérifier s'il est utilisé, etc. Avec des commandes et des explications. Ressource vraiment sympa.
Je n'ai pas assez d'espace pour installer ma RAM!
Les documents du noyau disent:
Alors, essayez de modifier la taille de votre image. Comment - posez une autre question s'il vous plaît.
Prérequis - votre noyau prend-il en charge la suspension sur disque?
Le noyau prend en charge tout ce qui est répertorié
/sys/power/state
, donc:cat /sys/power/state
Admis (à ma connaissance) les entrées y sont:
mem
,standby
,freeze
,disk
. Explication:mem
- a plusieurs significations, laquelle exactement sur votre système vous découvrirez viacat /sys/power/mem_sleep
. J'ai:s2idle [deep]
standby
- Suspension à la mise sous tension (si prise en charge)freeze
- Suspendre au ralenti (STI)disk
- Suspension sur disque (STD), hibernation . Ça - tu veux.Ensuite, nous devons vérifier
cat /sys/power/disk
. Si vous y êtes,disabled
plongez dans votre BIOS à la recherche d'un démarrage sécurisé - c'est la seule idée que je puisse vous proposer et la seule chose que je sache peut interférer et désactiver l'hibernation. Bien que je ne connaisse que SecureBoot, il peut y avoir d'autres interférences, donc jeter un œil à votre BIOS est une bonne idée même si vous n'avez pas de "démarrage sécurisé".Lire ici:
TBH, même si votre noyau ne prend PAS en charge l'hibernation, vous pouvez l'essayer d'une autre manière, faites défiler jusqu'à la section
Interfaces
.Lisez ceci - avertissements et problèmes - pas de BTRFS
Dans aucun ordre particulier:
N'utilisez pas BTRFS et hibernez: des données corrompues seront le résultat.
Je veux hiberner - échanger la partition
Il y a des cas où les gens renoncent au fichier d'échange et retournent à la partition d'échange. Après tout, cela a fonctionné sur les LTS précédents. Je n'ai pas essayé, donc je n'offrirai pas de pointeurs.
Je veux hiberner - avec un fichier d'échange
/etc/fstab
en un nouveau. Redémarrez pour voir le changement est bien pris (stocker la sauvegarde dufstab
afin que vous puissiez facilement revenir en arrière au cas où.Paramètres du noyau? Effrayant!
Lisez attentivement et décidez si vous souhaitez le faire, mais ce n'est qu'un moyen de configurer votre noyau. Il peut être plus facile d'hiberner via
systemd
etuswsusp
(voir Interfaces ci-dessous). Il se peut que vous - comme moi - décidiez finalement que la suspension vers la RAM est suffisante et que vous ne voulez pas avoir 32 Go sur un fichier d'échange (pas si bien pour les gens avec un SSD dans leurs ordinateurs portables, par exemple). Mais!resume=
de savoir sur quelle partition se trouve votre fichier swap etresume_offset=
de savoir à partir de quel fichier swap commencer la reprise.resume=
de pointer pour échanger la partition.resumedelay=
.Documents du noyau sur le retard de la reprise de l'hibernation:
Paramètres requis pour le fichier d'échange et l'hibernation :
Pour le,
resume=
choisissez le même style que l'root
élément dansfstab
. Donc, ou/dev/sdaX
ouUUID
ou LVM. Pour hiberner dans un fichier - fournissez une partition où votre fichier peut être trouvé.En train de lire:
Problème - en-tête de swap introuvable
Le fichier d'échange doit être formaté correctement. Si vos journaux vous le disent, vous essayez d'hiberner dans un fichier ou votre paramètre de reprise n'est pas correct.
Basculez pour partitionner ou corriger le fichier ou modifier l'interface utilisée pour l'hibernation.
Voir: /unix/43508/debian-hibernate-problem-pm-swap-header-not-found
mkswap
est utilisé pour formater le fichier, en savoir plus iciProblème! Hibernation non autorisée!
Testez:
pm-hibernate
(si le package pm-utils est installé) ousystemctl hibernate
dites-vous que vous n'êtes pas autorisé. Paramètre par défaut dans Ubuntu depuis IIRC 12.04.Solution (s): dépend de votre version de Polkit, de votre version d'Ubuntu et de votre saveur ... Voir cette question . De plus, ArchWiki sur Polkit peut vous aider.
Pour Mint, voir: https://forums.linuxmint.com/viewtopic.php?t=259912
Problème! Hibernation désactivée par quelque chose dans le BIOS!
Test:
cat /sys/power/disk
adisabled
. Les journaux affichent "Échec d'hibernation du système via logind: le verbe Sleep n'est pas pris en charge".Solution: recherchez votre BIOS et trouvez la chose problématique. Éteignez-le.
Solution 2: essayez une autre interface de mise en veille prolongée.
Voir: Comment activer l'hibernation dans 16.04.1? (systemd) .
Interfaces
Remarques de clôture
Pour moi, il a fallu presque deux jours de travail pour le compiler. J'espère que cela vous aidera (ainsi que d'autres) à résoudre votre problème plus rapidement. Il y a encore des points que j'ai ratés mais il est 2h du matin et je n'ai plus envie d'écrire plus maintenant. Je suis bien sûr ouvert aux conseils de quiconque pour améliorer les choses, alors commentez. Je répondrai une fois que je dors, travaille etc. :-)
Je ne suis pas certain que l'hibernation sur le disque soit géniale. J'ai fini par dormir. Mais pour moi, le problème était d'avoir un fichier de 32 Go juste pour pouvoir faire l'hibernation, car j'évite généralement d'échanger du tout. Mon fichier d'échange initial était à 2 Go et il était principalement vide. YMMV. Et bonne chance! Et commencez par les journaux!
la source
$ sudo apt install linux-generic-hwe-18.04
(pour certains matériels, celalinux-generic-hwe-18.04-edge
pourrait même valoir le coup).Utilisez l'UUID de la partition de swap au lieu de son point de montage dans le paramètre RESUME
resume=UUID=<#>
dans les deux/etc/default/grub
et/etc/initramfs-tools/conf.d/resume
Créez une entrée pour la partition de swap
/etc/fstab
sans point de montage quelque chose comme ceciDans
/etc/default/grub
J'ai utilisé une entrée distincte pour reprendre l'hibernationCréer un policykit dans l'autorité locale (pkla)
Et insérez là
Après cette mise à jour, initramfs et GRUB
Redémarrez, ouvrez certaines applications et utilisez
systemctl hibernate
(sans sudo) pour voir si cela fonctionnela source
Pour moi, cela a toujours fonctionné jusqu'au 18.04 et après le 18.04, je l'ai activé tel quel dans de nombreux articles, mais il a soudainement cessé de fonctionner juste hier (fonctionne bien pendant 4-5 mois),
et voici la ... UNE CHOSE qui l'a fait fonctionner à nouveau ...
Dites à grub2 où se trouve la partition de swap:
Découvrez d'abord sur quelle partition il se trouve en utilisant la commande ci-dessous:
Le mien est sur sda7 tout comme la sortie suivante:
Ensuite, ajoutez dans Grub2 l'ajout suivant à la ligne suivante, à l'aide de la commande suivante:
sudo gedit / etc / default / grub
La partie importante est
resume=/dev/sda7
Ensuite, mettez à jour Grub avec la commande suivante, et après cela, il a recommencé à fonctionner parfaitement:
Après de nombreuses tentatives, c'est la seule chose qui a fonctionné, peut-être était-ce simplement à cause d'une mise à jour du noyau qui l'a foiré, mais cela a néanmoins fonctionné.
la source
j'espère que cela aidera quelqu'un, mais je lance popos / ubuntu 19.04. Dans ma configuration, j'ai pu mettre en veille prolongée à l'aide de s2disk ou pm-hibernate, mais la reprise a échoué. Pour résoudre ce problème, car mon système est démarré en utilisant UEFI au lieu de grub. Je viens de réinstaller le chargeur de démarrage. Pour vérifier si vous exécutez UEFI, utilisez les éléments suivants:
[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"
si en mode UEFI, j'ai suivi ce guide pour réinstaller le chargeur de démarrage, cela varie si vous utilisez un disque nvme ou un disque sata: https://support.system76.com/articles/bootloader/
assurez-vous que dans vos options kernalboot, vous spécifiez la partition ou l'UUID d'où reprendre, par exemple quelque chose comme ceci:
resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Vous pouvez ajouter ceci soit: 1) sudo kernel-stub -a "resume = UUID = ..." 2) éditez le fichier /etc/initramfs-tools/conf.d/resume et ajoutez: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88
vérifiez votre fichier / var / log / syslog pour quelque chose comme ceci: 4 août 22:26:42 pop-os / usr / bin / kernelstub [19639]: kernelstub: DEBUG kopts: root = UUID = b37019a8-91f5-445f-94c1 -7359a49ed5df ro silencieux loglevel = 0 systemd .show_status = false resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Si le CV est manquant ou erroné, vous devrez à nouveau mettre à jour votre boot kernal.
la source
Outre la configuration du point de reprise de swap dans grub mentionné dans la réponse de Sam73 , j'ai trouvé que mon Ubuntu 18.04 devait également installer
laptop-mode-tools
:puis changez
ENABLE_LAPTOP_MODE_ON_AC=1
dans le fichier de configuration:démarrez le mode ordinateur portable avec:
PS Vous pouvez vérifier si l'ordinateur portable démarre ou non avec
S'il s'imprime
0
, lelaptop_mode
ne fonctionne pas, sinon, cela indique qu'il fonctionne correctement.la source