Comment devrais-je hiberner avec succès Ubuntu 16.04?
J'ai essayé presque toutes les solutions sur le Web, mais aucune d'entre elles n'était réellement utile. J'ai trouvé mon problème presque complètement similaire à celui-ci
la situation n'a-t-elle pas changé avec systemd? maintenant nous sommes censés utiliser, systemctl hibernatealors peut-être pas dupe ... ou du moins une réponse mise à jour peut être nécessaire pour que l'ancienne question soit valide pour duper
Zanna
Quelle version du noyau utilisez-vous? Tapez uname -rle terminal (excuses si vous le saviez déjà).
WinEunuuchs2Unix
S'il vous plaît modifier votre question et ajouter la sortie free afin que nous puissions déterminer si vous avez suffisamment de configuration d'échange pour hiberner avec succès.
Elder Geek
Réponses:
63
Vous pouvez utiliser
sudo pm-hibernate
pour vérifier si le fonctionnement en veille prolongée fonctionne sur votre système ( ceci mettra votre ordinateur en veille prolongée ).
Si cela ne fonctionne pas, vérifiez si la taille de votre swap est au moins égale à celle de votre RAM.
Pour ajouter cette option au menu des paramètres, vous pouvez créer un fichier de configuration. Ouvrez une fenêtre de terminal et exécutez cette commande:
Il ouvre nano avec un fichier vide. Copiez les lignes ci-dessous et collez-les dans la nano fenêtre.
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
Enregistrez ensuite les modifications, fermez nano et redémarrez le système pour que Hibernate disponible apparaisse dans "Options d'alimentation".
Une fois le fichier modifié, nous avons besoin d’un redémarrage pour que Hibernate disponible apparaisse dans les "Options d'alimentation".
Jus12
21
'sudo pm-hibernate' a immédiatement tué mon système sans avertissement. Vous devriez dire aux gens que c'est ce qui va se passer.
Yair Daon
meilleure réponse . Cela fonctionne également sur 17.4 et 17.10.
Saurabh Bhandari
1
Cette réponse, combinée à celle indiquant d'ajouter "resume =" à GRUB_CMDLINE_LINUX_DEFAULT, l'a résolue pour moi - merci!
Christoph
J'ai 17 Go dans ma partition d'échange et 16 Go de RAM, pourquoi ne fonctionne-t-il pas? Il semble être en hibernation car il faut une éternité pour éteindre l'ordinateur, alors que si je l'arrête, il s'éteint presque immédiatement. Mais lorsque je rallume mon ordinateur, tout est fermé et je dois recommencer. Ce n'est pas du tout en hibernation. Pourquoi cela ne peut-il pas être aussi simple que sous Windows? J'aimerais avoir de l'aide si quelqu'un a des idées sur la façon dont je peux le faire hiberner correctement.
user1271772
63
Hibernation à utiliser systemctlet à faire fonctionner dans des cas difficiles
Pour moi, pm-hibernateéchoue toujours. Après quelques ajustements, j'ai pu hiberner en utilisant l'interface de systemd (init system à partir de 16.04). J'ai également réussi à le faire fonctionner le 17.04 avec un fichier d'échange. Cette étude de cas peut être utile pour les personnes ayant des problèmes.
Premier essai:
sudo systemctl hibernate
En cas d'échec, commencez le dépannage: dans l'état de veille prolongée (HTD ou ACPI S4), l'état de l'ordinateur est écrit sur le disque, de sorte qu'aucune alimentation n'est nécessaire pour le conserver. L'état est écrit sur une partition d'échange ou dans un fichier d'échange. Remarque: si vous utilisez Btrfs, n'essayez PAS d'utiliser un fichier d'échange, car cela pourrait endommager le système de fichiers.
Votre partition d'échange ou fichier d'échange devra peut-être avoir la même taille que la RAM pour permettre l'hibernation, mais il y a de bonnes chances que vous puissiez passer en hibernation si sa taille est au moins égale à 2/5 de la taille de la RAM, selon la page du wiki Arch. , essayez d’abord d’autres étapes avant d’augmenter la taille de l’échange.
Si votre problème est que vous obtenez un démarrage en mode minimal au lieu du CV attendu, vous devez au moins probablement définir un paramètre de démarrage pour rechercher l'image du disque.
Trouvez votre partition d'échange:
grep swap /etc/fstab
pour moi cela retourne (sortie partielle)
# swap was on /dev/mmcblk0p3 during installation
où /dev/mmcblk0p3est la partition à spécifier
Ajouter un paramètre de démarrage:
sudoedit /etc/default/grub
À la ligne qui commence, GRUB_CMDLINE_LINUX_DEFAULTajoutez resume=/dev/YourSwapPartitiondes guillemets à la section (remplacez-la par la partition que vous avez identifiée précédemment). En utilisant mon exemple:
Chaque fois que vous modifiez ce fichier, vous devez l'exécuter sudo update-grubou les modifications n'auront aucun effet.
Maintenant, vous devez redémarrer. Ensuite, vous pouvez essayer de hiberner, en lançant la commande:
sudo systemctl hibernate
Pour reprendre, appuyez sur le bouton d'alimentation et le système va démarrer.
Si vous avez toujours des problèmes, démarrez le débogage.
J'inclus mon cas ci-dessous à titre d'exemple, mais des informations détaillées sur le débogage des états S se trouvent dans ce blog et celui-ci .
Définissez quelques paramètres de démarrage supplémentaires pour capturer plus d'informations. Supprimez quietet splashajoutez initcall_debug, no_console_suspendce qui entraînera l’impression des appels système init sur la console afin que vous puissiez voir ce qui ne va pas. J'ai mis ceci:
Ce qui m'a aidé à voir ce qui n'allait pas sur le résumé de l'hibernation.
Dans mon cas, après la reprise, j’ai perdu le WiFi, et le noyau était clairement bouleversé, car la plupart des commandes (lire /sys, recharger des modules ou n’importe quelle systemctlcommande) ne fonctionneraient pas - le processus semblerait démarrer et s’arrêter juste retourné à la normale après le redémarrage bien sûr). En regardant le système s’arrêter très lentement et en lisant tous les messages de débogage, j’ai remarqué qu’il y avait beaucoup de problèmes avec "brcm". J’imaginais donc que le module de pilote sans fil Broadcom était à blâmer. Bien sûr, j'ai ajusté ma procédure d'hibernation pour décharger le module en premier:
Et tout a fonctionné parfaitement. Je dois également lister le btsdiomodule qui semble incompatible avecbrcmfmac
Mise à jour: mise en veille prolongée à l'aide d'un fichier d'échange le 17.04.
Encore une fois, avec l'aide de la page Arch wiki et quelques modifications supplémentaires, j'ai réussi à faire passer l'hibernation en mode 17.04 avec un fichier d'échange. Cela nécessitait un paramètre d’amorçage supplémentaire, resume_offset=noù n est le premier nombre situé en dessous physical_offsetde la sortie de sudo filefrag -v /swapfile:
$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 1425873920 (348114 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
....
Par conséquent, le paramètre de démarrage supplémentaire dans mon cas est resume_offset=34816. Vous devez toujours définir un paramètre de démarrage pour que la partition puisse reprendre. Ce sera la partition racine (ou la partition sur laquelle se trouve votre fichier d'échange). Mes paramètres sont maintenant:
Où se /dev/mmcblk1p2trouve ma partition racine (la vôtre sera plus ou moins similaire /dev/sda2).
Pendant la reprise, j'ai vu le chargement de l'image réussir, mais dans mon cas (juste un exemple - YMMVAPD), quelques pilotes supplémentaires ( i2c_designware) ont jeté quelques erreurs et j'ai obtenu un gel complet du CV. Le mode veille prolongée fonctionne si je décharge ces modules en plus brcmfmac, mais le système devient rapidement inutilisable sans ces modules. J'ai donc fait une sorte de script pour décharger les modules buggy et les réinsérer immédiatement sur CV:
Quand je veux hiberner, je cours sudo bash script. Cela fonctionne très bien.
TL; DR
Utilisez systemd, définissez un paramètre d’amorçage pour le reprendre à partir du swap, identifiez les pilotes défectueux et déchargez-les avant de mettre en veille prolongée. Si le système ne peut pas fonctionner longtemps sans ces modules ou si vous devez en décharger plusieurs, il peut être plus facile d'utiliser un simple script pour activer le mode veille prolongée.
D'où proviennent ces informations, que 2/5 de la taille de la RAM pourraient suffire et dans quelles circonstances? J'ai une option utilisateur dans Gnome, "Hibernate" et cela semble hiberner, mais au réveil, cela ne fonctionne pas correctement. J'ai une partition d'échange de 8 Go et 32 Go de RAM. Ce n'est pas un 2/5, mais avant de créer un fichier d'échange (ou une partition) de 32 Go, il serait bon de savoir.
cslotty
@cslotty J'ai reçu cette information de l'Arch wiki IIRC - faites-moi savoir si vous y parvenez s'il vous plaît
Zanna
Merci, @ Zanna. J'ai découvert que ce n'est pas en hibernation, mais ce que je veux, mais suspendre (S3 / STR) - sry.
Cslotty
@cslotty pas de soucis du tout. Dans ce cas, l'échange n'est pas votre problème car il n'est pas lié.
Zanna
1
Merci, il me fallait une synthèse de cette réponse ainsi que l’astuce sur la désactivation de SecureBoot pour que cela fonctionne à la fin.
oligofren
20
Je pense que tous savent comment activer la mise en veille prolongée pour la réponse 16.04, comme décrit dans le wiki d'Ubuntu (voir ci-dessous si vous avez besoin de ces étapes). Mais les choses à vérifier ne sont pas approfondies, je pense. Au moins, c'est ce que j'ai trouvé.
Choses à vérifier
D'après mes propres tests, j'ai au moins trouvé une vérification supplémentaire à effectuer. Je n'ai trouvé à ce sujet nulle part sur Internet.
Voici quelques vérifications -
Vérifiez que vous n'utilisez aucune partition btrfs . Oui . De mon test, j'ai trouvé que si vous avez des partitions btrfs , hibernate ne fonctionnera pas. Supprimer ou changer le type de partition en ext4ne m'a pas aidé. Je devais enlever le btrfs-toolspaquet.
sudo apt-get purge btrfs-tools
Vous voudrez peut-être vérifier d'autres nouveaux types de partition qui ne sont pas bien testés. Sans supprimer le package, la mise en liste noire du pilote pourrait également fonctionner, mais je ne l'ai pas testée.
Aussi, vous devez vérifier que vous avez une partition de swap assez grande pour contenir le contenu de la RAM. Si votre mémoire vive est de 4 Go, l’échange doit avoir une taille d’au moins 4 Go (vous devez allouer quelques Mo supplémentaires pour plus de sécurité).
Étapes pour activer le mode veille prolongée
Il implique ces étapes
Créer un fichier en tant que root dans /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
Enregistrez le fichier en appuyant sur Ctrl- O. Sortir avec Ctrl-X
Merci, Anwar. J'ai classé le bogue n ° 1619846 et vous ai référé votre réponse ci-dessus. Avez-vous une chance de proposer des modifications / ajouts plus exacts à cette page dans la documentation officielle?
Gunnar Hjalmarsson
1
@ GunnarHjalmarsson Je proposerais cette mise en garde. Mais, il faudra que d'autres testeurs vérifient cela. Je vous le ferai savoir plus tard
Anwar le
Ok, parlons plus alors.
Gunnar Hjalmarsson
J'ai installé sur une partition btrfs et purgé btrfs-toolsselon vos instructions. Ne peut toujours pas hiberner.
Oxwivi
1
Sur le disque, il n'y a que vfatpour UEFI, btrfset swap. En fait, je soupçonne que cela est dû au matériel (ordinateur portable AMD). Je vais tester cela sur un autre système avec btrfs et revenir vers vous.
Oxwivi
7
Démarrage sécurisé
(J'ai posé une question similaire demandant un focus sur les réponses basées sur systemd, partageant ma solution ici pour les personnes qui suivent cette question)
Cette solution provient de sujets de Fedora (ils ont opté pour systemd il y a longtemps, donc il y a plus de matériel là-bas).
Dans mon cas (nouvelle installation de 16.04.1 sur une machine qui a toujours pris en charge l'hibernation), le fait d'appeler le obsolète sudo pm-hibernatene semblait rien faire, et l'approche à jour de systemd systemctl hibernate, renverrait:
Failed to hibernate system via logind: Sleep verb not supported
Il s’avère que c’est le démarrage responsable qui a été sécurisé: lors de l’installation de 16.04, il vous est demandé ce que vous voulez en faire (ce qui est une nouveauté, si je me souviens bien) et je l’ai gardé allumé sans trop y penser.
Sur ma machine avec démarrage sécurisé activé, a cat /sys/power/diskrépondu:
[disabled]
Après le redémarrage et la désactivation du démarrage sécurisé dans les paramètres du BIOS (ceux-ci sont spécifiques à la machine, mais généralement assez simples), j'ai essayé un cat /sys/power/disket obtenu:
[platform] shutdown reboot suspend
qui a l'air mieux. Et en effet, l’appel systemctl hibernateaboutit à une séquence hibernation / décongélation réussie.
De plus, après cela, je pouvais voir que l'hibernation était disponible en option à divers endroits de l'interface graphique, sans aucun polkitpiratage. Il semble donc que systemddevinait en fait de /sys/power/diskce que le système n'a pas été en mesure de mise en veille prolongée.
J'ai fait exactement ce que vous avez expliqué ici. Mais après avoir exécuté la commande "systemctl hibernate", l'écran est devenu noir pendant 3 secondes, puis le bureau est revenu avec tous mes programmes ouverts, exactement comme avant l'exécution de la commande. Quand j'ai exécuté la commande "cat / sys / power / disk" ... il m'a montré le texte suivant: "[plate-forme] arrêt redémarrage suspendre test_resume", ce qui est similaire au résultat obtenu lorsque vous avez exécuté la même chose de votre côté mais le dernier texte : "test_resume". Avez-vous une idée de ce que je pourrais essayer pour résoudre mon problème?
Foxhard
Pas trop sûr, on dirait que l'hibernation ne fonctionne pas immédiatement avec votre matériel, c'est pourquoi il est désactivé par défaut, comme d'autres l'ont souligné. Vous voudrez peut-être poser une question distincte sur votre problème spécifique.
Marc
Je travaille à moitié pour moi. Hiberne, mais au lieu de sortir de l'hibernation, passe au démarrage normal, puis reste bloqué pour toujours jusqu'à un arrêt physique brutal.
mat
6
Cette instruction a fonctionné pour mon installation Ubuntu 18.04.
sudo apt install hibernate Il installera hibernate et d’autres dépendances nécessaires pour hiberner
grep swap /etc/fstab (finger UUID)
sudoedit /etc/default/grub
À la ligne GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash", ajoutez l'UUID du swap. La ligne ressemble à ceci: GRUB_CMDLINE_LINUX_DEFAULT = "Resume de démarrage silencieux = UUID de swap"
sudo update-grub
Redémarrez et après le redémarrage sudo systemctl hibernate. Si tout fonctionne bien, ajoutez une entrée de menu.
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
au lieu d’ajouter une valeur fixe, /etc/default/grubenvisagez de mettre à jour initramfs à l’aide update-initramfs -u -k alld’un message du type The initramfs will attempt to resume from /dev/dm-0. Cela définira automatiquement le périphérique de reprise.
Ukraine
Merci, fonctionne parfaitement sur Ubuntu 18.04! Notez que si vous utilisez une extension gnome pour la première fois, vous devrez installer une extension de navigateur et un connecteur. Ceci est expliqué dans le lien d'extension en haut.
Karim Sonbol
4
Répondant à ma propre réponse à la réponse de kelvinelove, le fichier qu’il suggère d’éditer n’existait pas sur mon système (nouvelle Ubuntu 16.04). Au lieu de cela, j'ai fait ceci:
Recherchez ces sections (elles sont juste l'une à côté de l'autre):
[Désactiver la veille prolongée par défaut dans upower] Identity = utilisateur_unix: * Action = org.freedesktop.upower.hibernate ResultActive = no
[Désactiver hibernate par défaut dans logind] Identity = utilisateur_unix: * Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; ResultActive = no
Changez ResultActive = no en ResultActive = yes pour les deux.
Appuyez sur Ctrl + O pour enregistrer le fichier.
Redémarrez votre ordinateur
L' option Veille prolongée est maintenant disponible dans vos menus d'alimentation.
EDIT: Gunnar a fait remarquer que ce fichier était écrasé si un paquet était mis à jour, donc, selon vos intentions, ce n’était probablement pas la meilleure solution.
Le fichier dans /etcn'est pas censé exister par défaut. C'est un fichier de configuration que vous créez. La modification d'un fichier appartenant à un paquet, comme vous le suggérez ci-dessus, est un mauvais conseil, car il sera écrasé à la prochaine mise à jour du paquet.
Gunnar Hjalmarsson
@GunnarHjalmarsson Si tel est le cas, je dirais qu'il devrait être précisé qu'il pourrait ne pas exister. J'attends plus d'une réponse Ask Top Ubuntu bien cotée qu'une réponse "copier / coller cette commande" -> "taper cette"-style - qui ne dispose d'aucune sorte de vérification pour savoir si vous faites la bonne chose (autre que de vérifier si cela a fonctionné) . Que se passe-t-il si quelqu'un trouve cette réponse dans quelques années, mais craint de l'essayer car le fichier est vide et que les instructions indiquent clairement qu'il faut ajouter au fichier, ce qui implique qu'il existe? Néanmoins, j'apprécie les informations, je les ajouterai à la réponse.
fgblomqvist
1
Juste point; J'ai corrigé la réponse de NirajW avec cette précision. Il convient de noter que la source d’information originale sur cette page parle de création .
Gunnar Hjalmarsson
C'est parfait tu m'as sauvé frère :)
Azam Alvi
4
Pour moi, cela fonctionne pour installer le hibernatepaquet, redémarrer puis exécuter sudo hibernate-disk. Je suis sûr qu'il est possible de l'ajouter au menu, mais cela ne vaut pas la peine.
Tout d'abord, je vous recommande de vérifier si votre ordinateur prend en charge l'hibernation, car si l'hibernation est désactivée par défaut, c'est parce que les résultats de certains ordinateurs sont parfois désagréables. Testez votre machine en ouvrant le terminal ( Ctrl+ Alt+ T) puis en tapantsudo pm-hibernate
Votre machine devrait hiberner. Réveillez votre machine après l'hibernation et observez si elle se comporte mal ou si elle agit normalement. Si vous rencontrez une anomalie après l'hibernation, je vous conseille donc de ne pas poursuivre la procédure suivante. Toutefois, si cela fonctionne correctement, continuez à activer le mode veille prolongée en procédant comme suit:
Après cela, redémarrez votre ordinateur et, après vous être connecté, une option de mise en veille prolongée a été ajoutée dans le menu d'alimentation, dans le coin supérieur droit des paramètres.
J'ai le thinkpad -E550 et l'hibernation ne pose pas de problème lorsque mon système d'exploitation est Ubuntu 15.1 ou Windows 8.1. mais en utilisant Ubuntu 16.04, lorsque j'utilise la commande "sudo pm-hibernate", il ne fonctionne pas complètement en veille prolongée et l'écran devient noir et la machine est toujours allumée.
Mahyar
Dans mon cas, la commande ne fait rien du tout. Le terminal accède à la nouvelle ligne et attend la commande suivante, c’est-à-dire que la commande précédente a été exécutée. Mais cela ne fait rienat all
Aalok
Cela ne marche pas pour moi. Ubuntu 16.04. L'option Hibernate n'apparaît pas et reste désactivée dans Paramètres -> Alimentation, rien d'autre?
sudo pm-hibernate
marche?systemctl hibernate
alors peut-être pas dupe ... ou du moins une réponse mise à jour peut être nécessaire pour que l'ancienne question soit valide pour duperuname -r
le terminal (excuses si vous le saviez déjà).free
afin que nous puissions déterminer si vous avez suffisamment de configuration d'échange pour hiberner avec succès.Réponses:
Vous pouvez utiliser
pour vérifier si le fonctionnement en veille prolongée fonctionne sur votre système ( ceci mettra votre ordinateur en veille prolongée ).
Si cela ne fonctionne pas, vérifiez si la taille de votre swap est au moins égale à celle de votre RAM.
Pour ajouter cette option au menu des paramètres, vous pouvez créer un fichier de configuration. Ouvrez une fenêtre de terminal et exécutez cette commande:
Il ouvre nano avec un fichier vide. Copiez les lignes ci-dessous et collez-les dans la nano fenêtre.
Enregistrez ensuite les modifications, fermez nano et redémarrez le système pour que Hibernate disponible apparaisse dans "Options d'alimentation".
Référence: Comment puis-je hiberner mon ordinateur? dans la documentation officielle pour Ubuntu 16.04.
Esperons que ça marche. Cela a fonctionné pour moi après avoir essayé toutes les autres options.
la source
Hibernation à utiliser
systemctl
et à faire fonctionner dans des cas difficilesPour moi,
pm-hibernate
échoue toujours. Après quelques ajustements, j'ai pu hiberner en utilisant l'interface de systemd (init system à partir de 16.04). J'ai également réussi à le faire fonctionner le 17.04 avec un fichier d'échange. Cette étude de cas peut être utile pour les personnes ayant des problèmes.Premier essai:
En cas d'échec, commencez le dépannage: dans l'état de veille prolongée (HTD ou ACPI S4), l'état de l'ordinateur est écrit sur le disque, de sorte qu'aucune alimentation n'est nécessaire pour le conserver. L'état est écrit sur une partition d'échange ou dans un fichier d'échange. Remarque: si vous utilisez Btrfs, n'essayez PAS d'utiliser un fichier d'échange, car cela pourrait endommager le système de fichiers.
Votre partition d'échange ou fichier d'échange devra peut-être avoir la même taille que la RAM pour permettre l'hibernation, mais il y a de bonnes chances que vous puissiez passer en hibernation si sa taille est au moins égale à 2/5 de la taille de la RAM, selon la page du wiki Arch. , essayez d’abord d’autres étapes avant d’augmenter la taille de l’échange.
Si votre problème est que vous obtenez un démarrage en mode minimal au lieu du CV attendu, vous devez au moins probablement définir un paramètre de démarrage pour rechercher l'image du disque.
Trouvez votre partition d'échange:
pour moi cela retourne (sortie partielle)
où
/dev/mmcblk0p3
est la partition à spécifierAjouter un paramètre de démarrage:
À la ligne qui commence,
GRUB_CMDLINE_LINUX_DEFAULT
ajoutezresume=/dev/YourSwapPartition
des guillemets à la section (remplacez-la par la partition que vous avez identifiée précédemment). En utilisant mon exemple:Chaque fois que vous modifiez ce fichier, vous devez l'exécuter
sudo update-grub
ou les modifications n'auront aucun effet.Maintenant, vous devez redémarrer. Ensuite, vous pouvez essayer de hiberner, en lançant la commande:
Pour reprendre, appuyez sur le bouton d'alimentation et le système va démarrer.
Si vous avez toujours des problèmes, démarrez le débogage.
J'inclus mon cas ci-dessous à titre d'exemple, mais des informations détaillées sur le débogage des états S se trouvent dans ce blog et celui-ci .
Définissez quelques paramètres de démarrage supplémentaires pour capturer plus d'informations. Supprimez
quiet
etsplash
ajoutezinitcall_debug
,no_console_suspend
ce qui entraînera l’impression des appels système init sur la console afin que vous puissiez voir ce qui ne va pas. J'ai mis ceci:Ce qui m'a aidé à voir ce qui n'allait pas sur le résumé de l'hibernation.
Dans mon cas, après la reprise, j’ai perdu le WiFi, et le noyau était clairement bouleversé, car la plupart des commandes (lire
/sys
, recharger des modules ou n’importe quellesystemctl
commande) ne fonctionneraient pas - le processus semblerait démarrer et s’arrêter juste retourné à la normale après le redémarrage bien sûr). En regardant le système s’arrêter très lentement et en lisant tous les messages de débogage, j’ai remarqué qu’il y avait beaucoup de problèmes avec "brcm". J’imaginais donc que le module de pilote sans fil Broadcom était à blâmer. Bien sûr, j'ai ajusté ma procédure d'hibernation pour décharger le module en premier:en reprise je réinsère le module
Et tout a fonctionné parfaitement. Je dois également lister le
btsdio
module qui semble incompatible avecbrcmfmac
Mise à jour: mise en veille prolongée à l'aide d'un fichier d'échange le 17.04.
Encore une fois, avec l'aide de la page Arch wiki et quelques modifications supplémentaires, j'ai réussi à faire passer l'hibernation en mode 17.04 avec un fichier d'échange. Cela nécessitait un paramètre d’amorçage supplémentaire,
resume_offset=n
où n est le premier nombre situé en dessousphysical_offset
de la sortie desudo filefrag -v /swapfile
:Par conséquent, le paramètre de démarrage supplémentaire dans mon cas est
resume_offset=34816
. Vous devez toujours définir un paramètre de démarrage pour que la partition puisse reprendre. Ce sera la partition racine (ou la partition sur laquelle se trouve votre fichier d'échange). Mes paramètres sont maintenant:Où se
/dev/mmcblk1p2
trouve ma partition racine (la vôtre sera plus ou moins similaire/dev/sda2
).Pendant la reprise, j'ai vu le chargement de l'image réussir, mais dans mon cas (juste un exemple - YMMVAPD), quelques pilotes supplémentaires (
i2c_designware
) ont jeté quelques erreurs et j'ai obtenu un gel complet du CV. Le mode veille prolongée fonctionne si je décharge ces modules en plusbrcmfmac
, mais le système devient rapidement inutilisable sans ces modules. J'ai donc fait une sorte de script pour décharger les modules buggy et les réinsérer immédiatement sur CV:Quand je veux hiberner, je cours
sudo bash script
. Cela fonctionne très bien.TL; DR
Utilisez systemd, définissez un paramètre d’amorçage pour le reprendre à partir du swap, identifiez les pilotes défectueux et déchargez-les avant de mettre en veille prolongée. Si le système ne peut pas fonctionner longtemps sans ces modules ou si vous devez en décharger plusieurs, il peut être plus facile d'utiliser un simple script pour activer le mode veille prolongée.
la source
Je pense que tous savent comment activer la mise en veille prolongée pour la réponse 16.04, comme décrit dans le wiki d'Ubuntu (voir ci-dessous si vous avez besoin de ces étapes). Mais les choses à vérifier ne sont pas approfondies, je pense. Au moins, c'est ce que j'ai trouvé.
Choses à vérifier
D'après mes propres tests, j'ai au moins trouvé une vérification supplémentaire à effectuer. Je n'ai trouvé à ce sujet nulle part sur Internet.
Voici quelques vérifications -
Vérifiez que vous n'utilisez aucune partition btrfs . Oui . De mon test, j'ai trouvé que si vous avez des partitions btrfs , hibernate ne fonctionnera pas. Supprimer ou changer le type de partition en
ext4
ne m'a pas aidé. Je devais enlever lebtrfs-tools
paquet.Vous voudrez peut-être vérifier d'autres nouveaux types de partition qui ne sont pas bien testés. Sans supprimer le package, la mise en liste noire du pilote pourrait également fonctionner, mais je ne l'ai pas testée.
Aussi, vous devez vérifier que vous avez une partition de swap assez grande pour contenir le contenu de la RAM. Si votre mémoire vive est de 4 Go, l’échange doit avoir une taille d’au moins 4 Go (vous devez allouer quelques Mo supplémentaires pour plus de sécurité).
Étapes pour activer le mode veille prolongée
Il implique ces étapes
Créer un fichier en tant que root dans
/etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
Mettez ce contenu dans ce fichier
Enregistrez le fichier en appuyant sur Ctrl- O. Sortir avec Ctrl-X
Redémarrer le
polkitd
démonIl devrait permettre d'hiberner.
la source
btrfs-tools
selon vos instructions. Ne peut toujours pas hiberner.vfat
pour UEFI,btrfs
etswap
. En fait, je soupçonne que cela est dû au matériel (ordinateur portable AMD). Je vais tester cela sur un autre système avec btrfs et revenir vers vous.Démarrage sécurisé
(J'ai posé une question similaire demandant un focus sur les réponses basées sur systemd, partageant ma solution ici pour les personnes qui suivent cette question)
Cette solution provient de sujets de Fedora (ils ont opté pour systemd il y a longtemps, donc il y a plus de matériel là-bas).
Dans mon cas (nouvelle installation de 16.04.1 sur une machine qui a toujours pris en charge l'hibernation), le fait d'appeler le obsolète
sudo pm-hibernate
ne semblait rien faire, et l'approche à jour de systemdsystemctl hibernate
, renverrait:Il s’avère que c’est le démarrage responsable qui a été sécurisé: lors de l’installation de 16.04, il vous est demandé ce que vous voulez en faire (ce qui est une nouveauté, si je me souviens bien) et je l’ai gardé allumé sans trop y penser.
Sur ma machine avec démarrage sécurisé activé, a
cat /sys/power/disk
répondu:Après le redémarrage et la désactivation du démarrage sécurisé dans les paramètres du BIOS (ceux-ci sont spécifiques à la machine, mais généralement assez simples), j'ai essayé un
cat /sys/power/disk
et obtenu:qui a l'air mieux. Et en effet, l’appel
systemctl hibernate
aboutit à une séquence hibernation / décongélation réussie.De plus, après cela, je pouvais voir que l'hibernation était disponible en option à divers endroits de l'interface graphique, sans aucun
polkit
piratage. Il semble donc quesystemd
devinait en fait de/sys/power/disk
ce que le système n'a pas été en mesure de mise en veille prolongée.la source
Cette instruction a fonctionné pour mon installation Ubuntu 18.04.
sudo apt install hibernate
Il installera hibernate et d’autres dépendances nécessaires pour hibernergrep swap /etc/fstab
(finger UUID)sudoedit /etc/default/grub
À la ligne GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash", ajoutez l'UUID du swap. La ligne ressemble à ceci: GRUB_CMDLINE_LINUX_DEFAULT = "Resume de démarrage silencieux = UUID de swap"sudo update-grub
sudo systemctl hibernate
. Si tout fonctionne bien, ajoutez une entrée de menu.sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
maintenant coller ceci:copié de https://askubuntu.com/a/819891/712203
la source
/etc/default/grub
envisagez de mettre à jour initramfs à l’aideupdate-initramfs -u -k all
d’un message du typeThe initramfs will attempt to resume from /dev/dm-0
. Cela définira automatiquement le périphérique de reprise.Répondant à ma propre réponse à la réponse de kelvinelove, le fichier qu’il suggère d’éditer n’existait pas sur mon système (nouvelle Ubuntu 16.04). Au lieu de cela, j'ai fait ceci:
sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
Recherchez ces sections (elles sont juste l'une à côté de l'autre):
Changez ResultActive = no en ResultActive = yes pour les deux.
EDIT: Gunnar a fait remarquer que ce fichier était écrasé si un paquet était mis à jour, donc, selon vos intentions, ce n’était probablement pas la meilleure solution.
Source: http://www.zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04/
la source
/etc
n'est pas censé exister par défaut. C'est un fichier de configuration que vous créez. La modification d'un fichier appartenant à un paquet, comme vous le suggérez ci-dessus, est un mauvais conseil, car il sera écrasé à la prochaine mise à jour du paquet.Pour moi, cela fonctionne pour installer le
hibernate
paquet, redémarrer puis exécutersudo hibernate-disk
. Je suis sûr qu'il est possible de l'ajouter au menu, mais cela ne vaut pas la peine.la source
Tout d'abord, je vous recommande de vérifier si votre ordinateur prend en charge l'hibernation, car si l'hibernation est désactivée par défaut, c'est parce que les résultats de certains ordinateurs sont parfois désagréables. Testez votre machine en ouvrant le terminal ( Ctrl+ Alt+ T) puis en tapant
sudo pm-hibernate
Votre machine devrait hiberner. Réveillez votre machine après l'hibernation et observez si elle se comporte mal ou si elle agit normalement. Si vous rencontrez une anomalie après l'hibernation, je vous conseille donc de ne pas poursuivre la procédure suivante. Toutefois, si cela fonctionne correctement, continuez à activer le mode veille prolongée en procédant comme suit:
Editez le fichier ouvert et ajoutez ces lignes:
Après cela, redémarrez votre ordinateur et, après vous être connecté, une option de mise en veille prolongée a été ajoutée dans le menu d'alimentation, dans le coin supérieur droit des paramètres.
la source
at all
com.ubuntu.enable-hibernate.pkla
. Voir la réponse publiée par NirajW.Vous trouverez ici de très bonnes ressources pour vous aider à résoudre certains des problèmes les plus courants en matière d'hibernation sous Ubuntu.
Dans mon cas, faire tourner Ubuntu 16.10 sur un Lenovo u300s, pour que l'hibernation fonctionne correctement, je devais faire ce qui suit:
Modifier
/etc/default/grub
pour inclure la ligne suivante:RESUME fait référence à votre UUID de fichier d'échange spécifique. En particulier, sur ma machine
pci=nomsi
était la clé.Bonne chance!
la source
Vous devez l'activer manuellement avec un petit effort. Il a été désactivé par défaut.
http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/
Ensuite, si cela ne fonctionne pas, il peut s'agir d'un problème de noyau 4.4.0 et vous devrez peut-être mettre à niveau le noyau.
la source