Comment activer l'hibernation?

424

Dans Ubuntu 12.04 et les versions ultérieures , l' hibernation a été désactivée par défaut dans policykit . Comment puis-je activer ce retour?

Dima
la source
11
Pourquoi l'ont-ils désactivé en premier lieu? Cela a-t-il quelque chose à voir avec la perte de son?
Ali
2
pour 13h10,
rogerdpack le
4
Pour répondre à la question de Ali, il était désactivé car de nombreuses personnes avaient des problèmes d'hibernation en raison de problèmes liés à leurs partitions d'échange. Cependant, dans Ubuntu 14.10 Utopic Unicorn, il est prévu de faire fonctionner l'hibernation pour de bon, avec un bouton et tout le reste.
John Scott
1
Pour le 15.04, vous pouvez avoir besoin de cette question askubuntu.com/q/614662/178596
Wilf
Hibernate peut ne pas fonctionner lorsque la btrfspartition est utilisée. Voir ici askubuntu.com/questions/768136/…
Anwar le

Réponses:

334

Si cette réponse ne fonctionne pas dans Ubuntu 13.10, voir ici une réponse alternative


Vous pouvez suivre la documentation officielle ici . L'hibernation a été désactivée le 12.04 pour les machines non certifiées avec Ubuntu.

Afin d'activer l'hibernation, vous devez vérifier si cela fonctionne correctement en exécutant sudo pm-hibernatedans un terminal. Le système va essayer d'hiberner. Si vous êtes en mesure de redémarrer le système, vous êtes plus ou moins sûr d’ajouter une substitution.

Pour ce faire, commencez à éditer:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Remplissez-le avec ceci:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Ou à partir de 14.04:

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate
  ResultActive=yes

[Re-enable hibernate for multiple users by default in logind]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

Sauvegardez en appuyant sur Ctrl- Opuis sur enteret quittez nano en appuyant sur Ctrl- X.

Redémarrez et l'hibernation est de retour!

Ou exécutez killall unity-panel-servicesimplement pour réinitialiser le menu.

Certains utilisateurs devront ensuite s'exécuter sudo update-grubpour que l'option de mise en veille prolongée soit disponible dans le menu d'alimentation. Certains utilisateurs doivent également au moins se déconnecter, puis se connecter pour le faire apparaître dans le menu d'alimentation (en haut à droite).

Dima
la source
1
Cette solution fonctionne également dans le shell GNOME 3.4 avec l’extension "Alternative Status Menu".
Robert Wohlfarth le
1
@ cuda.geek Oui, je ne vais plus m'embêter avec toute cette affaire, taper cette petite commande est plus rapide (encore plus rapide avec un alias ...) :)
Aditya MP
15
Vraiment? Est-ce la version plus conviviale pour l'utilisateur qui modifie un paramètre aussi simple? Il se fait de plus en plus laid tous les jours ...
Esteban
1
Grand tutoriel! J'étais passé de windows à ubuntu et j'adorais ça! vous êtes géniaux :)
gfivehost
8
Je ne pense pas que ce soit le propos d'Esteban. Il ne devrait pas avoir besoin de magie profane pour permettre l'hibernation. Pensez à quelque chose dans le répertoire / etc / default où vous modifiez une ligne de enable_hibernate = "false" en enable_hibernate = "true". Pensez à avoir une boîte de dialogue système-> paramètres qui vous permet simplement de l'activer avec un avertissement "cela peut ne pas fonctionner, votre machine peut ne pas se réveiller correctement".
Scott Marlowe
47

Tout d'abord, vous devez tester votre machine prend en charge l'hibernation. Testez-le avec la commande:

 sudo pm-hibernate
 # or for newer Ubuntus like 17.04
 sudo systemctl hibernate

Ubuntu 16.04 et plus

Pour activer l'interface, vous devez exécuter sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaet remplir avec:

[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.hibernate-multiple-sessions
ResultActive=yes

Ubuntu 14.04 et 15.04

Pour activer l'interface, vous devez exécuter sudo nano /etc/polkit-1/localauthority.conf.d/52-enable-hibernation.confpour Ubuntu 14.04 et 15.04 et remplir avec:

[Re-enable hibernate by default]
  Identity=unix-user:*
  Action=org.freedesktop.upower.hibernate
  ResultActive=yes

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

Il a plusieurs strophes car vous pourriez avoir plusieurs utilisateurs (donc cela ne dépend pas de plusieurs utilisateurs ou de l’auteur en tant que manager au lieu de login1)

ps: dernière documentation officielle https://help.ubuntu.com/stable/ubuntu-help/power-hibernate.html

morhook
la source
1
Cela a fonctionné pour moi sur Ubuntu 15.04 , contrairement à la réponse initialement acceptée.
Mike B.
@ MikeB. Cela a fonctionné car depuis Ubuntu 15.04, le système principal Ubuntu commence à utiliser systemd, un remplacement plus récent de l’ancien. La dernière section du code ci-dessus ayant "logind" concerne les systèmes basés sur systemd. J'espère que cela éclaire un peu votre situation. : D
x__x
Travaillé pour moi sur Ubuntu 16.04 . le seul problème était la permission refusée d'erreur que j'ai résolue en utilisant sudo.
Sandeep
La première étape sudo pm-hibernateaboutit à command not found. J'ai aussi essayé sudo apt install sudo pm-hibernate, ce qui n'est pas non plus disponible. Ceci est la version Ubuntu 16.04.
LD James
Votre réponse devrait figurer en haut de la liste, même si elle compte moins de voix, cela a plus de sens pour les visiteurs qui utilisent le logiciel actuel.
WinEunuuchs2Unix
32

De plus, pour ceux qui souhaitent désactiver le bouton de suspension (pour diverses raisons), procédez de manière analogue ...

Choisissez n'importe quel nom de fichier, mais celui-ci est verbose / convention:

sudoedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla

Remplissez-le avec ceci:

[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

Ctrl+ O, Enter, Ctrl+X

Pas besoin de redémarrer, il devrait être parti dès que vous entrez dans le menu d'arrêt.

nacs
la source
Vous voulez dire:ResultActive=yes
1
Non, cela devrait être ResultActive=no. La réponse spécifie que ceci pour désactiver la suspension.
Michael Mior
14

Une dernière chose:

Lorsque vous souhaitez ajouter l'option de veille prolongée au panneau de XFCE , vous devez cliquer avec le bouton droit de la souris sur votre nom (droit) et sélectionner properties.

Après cela, un écran apparaît:

entrez la description de l'image ici

Assurez-vous de vérifier Hibernate comme je l'ai fait.

mreq
la source
14

Tout d'abord, je vous recommande de vérifier si votre ordinateur portable prend en charge le mode veille prolongée, car si le mode veille prolongée est désactivé par défaut, c'est parce que les résultats sont parfois fatals sur certaines machines. Testez votre machine en

Ctrl+ Alt+ Tpuissudo 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 très bien, continuez à activer le mode veille prolongée en

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Editez le fichier ouvert et ajoutez ces lignes:

[Re-enable hibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Après cela, redémarrez votre ordinateur et, lors de la connexion, une option de mise en veille prolongée apparaît dans le coin supérieur droit des paramètres.

kelvinelove
la source
Pourquoi la restauration?
c'était un retour en arrière erroné
kelvinelove
6

Si la réponse à /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklane fonctionne pas comme dans mon cas, n'oubliez pas de supprimer le fichier en:

sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Et essayez d'utiliser TuxOnIce .


Tout d’abord, assurez-vous d’avoir suffisamment d’échange. Il devrait être de la même taille ou plus grand que la quantité de RAM. Utiliser la commande

free

règle Swap> Mem. Si ce n'est pas le cas, agrandissez la taille de votre échange. Puis installez TuxOnIce en

sudo add-apt-repository ppa:tuxonice/ppa
sudo apt-get update
sudo apt-get install tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice

Ensuite, vous pouvez essayer de faire un test de veille prolongée exécuté par:

sudo pm-hibernate

N'oubliez pas de sauvegarder votre travail avant de le faire.

Si tout s'est bien passé, votre ordinateur s'éteindra. Après l'avoir allumé, votre ordinateur de bureau sera dans l'état que vous aviez laissé avant l'hibernation.

Dee
la source
tuxonice fonctionne également pour moi, alors que l'hibernation native d'Ubuntu 14.04 échoue pour une raison quelconque!
Leszek
5

Activation de l'hibernation avec un script

J'ai traduit ci-dessus les réponses aux bashscripts. Cela rend l'installation sur plusieurs machines moins fastidieuse.

Script enable-hibernate:

#!/bin/bash
#http://askubuntu.com/a/94963/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Enable Hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
_EOF_
clear
echo
echo 'Hibernate enabled.'
echo

Script disable-suspend:

#!/bin/bash
#http://askubuntu.com/a/154821/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla
[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no
_EOF_
clear
echo
echo 'Suspend disabled.'
echo

Remarque: N'oubliez pas les chmod +xdeux scripts pour les rendre exécutables.

Serge Stroobandt
la source
4

Une commande simple qui fait exactement la même chose que la réponse acceptée, sauf de manière non interactive:

cat <<EOF | sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
EOF
kiri
la source
2

En 12.04, j'ai activé avec succès l'option de veille prolongée dans le menu des indicateurs pour la veille prolongée. Mais je n’ai toujours pas pu reprendre mon activité d’hibernation. J'ai suivi ces étapes pour résoudre ce problème:

Activer Hibernate dans 12.04

Pour activer Hibernate, j'ai suivi cette réponse de Dima.

Après avoir activé le mode hibernation, je pouvais hiberner. Mais le problème est, je ne peux pas reprendre avec succès de hibernation. À chaque fois que je démarre mon ordinateur à partir de la veille prolongée, il démarre comme un démarrage normal. Donc, je devais faire ces choses pour pouvoir reprendre de l'hibernation.

Les correctifs pour pouvoir reprendre depuis Hibernate

Il y a deux façons de résoudre ce problème.

1. Éditer le /etc/initramfs-tools/conf.d/resumefichier

  1. Commencez par obtenir l'UUID de la partition de swap.

     sudo blkid | grep swap
    

    Cela produira une ligne semblable à ceci:

    /dev/sda12: UUID="a14f3380-810e-49a7-b42e-72169e66c432" TYPE="swap"
    

    La ligne actuelle ne correspondra pas à cela. Copiez la valeur de l'UUID entre "..."les guillemets.

  2. Ouvrir le fichier de reprise

    gksudo gedit /etc/initramfs-tools/conf.d/resume
    

    Et dans ce fichier, ajoutez une ligne comme celle-ci

    RESUME=UUID=a14f3380-810e-49a7-b42e-72169e66c432
    

    N'oubliez pas de remplacer la valeur UUID actuelle obtenue à l'étape 1. Enregistrez le fichier et quittez gedit.

  3. Puis en terminal, exécutez cette commande

    sudo update-initramfs -u
    

Vous pourrez maintenant reprendre depuis l'hibernation

2. Modification du /etc/default/grubfichier.

  1. Ouvrez un terminal et exécutez la commande ci-dessous pour l'ouvrir.

    gksudo gedit / etc / default / grub

  2. Il y aura une ligne comme GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" . Modifiez la ligne à insérer RESUME=UUID=<your-uuid-value-here>après le mot splash.

    Par exemple, dans mon cas, la ligne ressemble à ceci après l'édition

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=a14f3380-810e-49a7-b42e-72169e66c432" 
    

    Assurez-vous que vous avez utilisé la valeur UUID obtenue à partir de la sudo blkid | grep swapcommande.

  3. Alors fais cette commande

     sudo update-grub
    

Cela vous permet également de reprendre avec succès votre veille prolongée.


Testé sur deux installations Ubuntu, les deux ont fonctionné

Anwar
la source
déposer ceci comme une question séparée et une réponse. Comme les gens peuvent rechercher «ne pas reprendre la suspension» et ne pas trouver votre excellent travail écrit.
Dima
Après votre suggestion, j'ai créé cette question à réponse spontanée askubuntu.com/questions/196364/…
Anwar
0

J'ai Ubuntu Gnome 17.04 amd64 sur mon cahier. J'ai fait ce qui suit pour activer l'hibernation:

$ sudo apt-get install hibernate( source )

Ce installé aussi libx86-1uswsuspvbetool

Ensuite, je pourrais hiberner avec succès sudo systemctl hibernate. Il n'y a pas d' pm-hibernateexécutable sur mon chemin.

$ sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Inséré: ( source )

[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

Installé https://extensions.gnome.org/extension/755/hibernate-status-button/

ominug
la source