GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Hibernation en 18.04 ?

Cette question a déjà des réponses ici :Comment debug suspendre ?

(3 réponses)
Fermé il y a 2 ans.

Hibernation sur mon Ubuntu 18.04 ne fonctionnait pas prêt à l'emploi (je veux dire sudo systemctl hibernate ). J'ai donc fait plusieurs tentatives pour résoudre ce problème il y a quelque temps et je ne me souviens malheureusement pas exactement de ce que j'ai fait.

Mais maintenant :

sudo hibernate

hiberne avec succès le système et au prochain démarrage, l'état du système se restaure avec succès, sauf que l'écran de connexion n'apparaît pas, ce qui n'est pas bon. Et si j'ai de nombreuses applications en cours d'exécution, après une telle reprise, le système peut être gelé jusqu'à 20 minutes (je vois les fenêtres des applications, je peux déplacer le pointeur de la souris, mais le système ne répond pas aux clics) mais après cela fonctionne normalement.

sudo systemctl hibernate

fait quelque chose, arrête le système, mais au prochain démarrage, je vois plusieurs messages supprimer le nœud orphelin et enfin démarrage propre, comme s'il n'y avait pas d'hibernation.

S'il vous plaît, aidez-moi à le clarifier et à activer l'hibernation dans l'interface graphique.

En même temps, la suspension en mémoire et la reprise à partir de la mémoire fonctionnent bien sans problème, y compris l'écran de connexion lors de la reprise .

La principale question que j'ai est la suivante :lequel des deux mécanismes hibernate ou systemctl hibernate dois-je utiliser avec 18.04 ?

Détails

Le système a une partition d'échange

$ 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

et dans /etc/default/grub il a

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=/dev/sda5″
GRUB_CMDLINE_LINUX=””

et

$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume

[RÉSOLU] 🙂

Enfin, j'ai réussi à mettre l'hibernation au travail. Tant que je n'ai pas une compréhension profonde du sujet, je préfère décrire ce que j'ai fait. Alors

  1. Complètement supprimé pm-utils et uswsusp , puis sudo update-initramfs -c -k all et reboot

Après que cette tentative d'hibernation se soit terminée par un démarrage en mode minimal au lieu de reprendre. Alors

  1. Réinstallation de systemd puis changé les noms d'appareils en UUID afin que

dans /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1″

dans /etc/initramfs-tools/conf.d/resume

RESUME=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1

alors

$ sudo update-initramfs -c -k all
$ sudo update-grub
$ reboot

Après cela sudo systemctl hibernate et la reprise a réussi mais sans écran de connexion, donc

  1. Dans Paramètres (gui) pour l'action du bouton d'alimentation, j'ai attribué "Hibernate"

Maintenant, lorsque j'appuie sur le bouton d'alimentation, le système hiberne puis se restaure via l'écran de connexion.

Un grand merci à toutes les personnes impliquées

UPD :J'ai maintenant trouvé une solution encore meilleure :utilisez le fichier d'échange

J'ai vérifié cela sur une nouvelle installation de bureau Ubuntu 18.10 et supposons que cela fonctionne également avec une nouvelle installation de bureau 18.04 car ils utilisent tous les deux le swap fichier par défaut, c'est-à-dire qu'ils n'allouent pas de swap partition par défaut. Mais le fichier d'échange par défaut est de 2 Go quelle que soit la taille de la mémoire système, il doit donc être augmenté.

La description complète est par exemple ici.

Meilleure réponse

Il y a deux excellentes réponses aux questions sur l'hibernation avec un peu plus de détails ici :

Petit kami de la forêt ancienne La réponse à :Ubuntu 18.04 ne peut pas reprendre après l'hibernation

Connexe :Deja-dup n'arrête pas de demander un mot de passe ?

Zanna La réponse à :Comment puis-je hiberner sur Ubuntu 16.04 ?

Normalement, je n'utilise pas Hibernate, mais j'essayais de l'utiliser récemment tout en poursuivant un bogue et j'ai réalisé que pour travailler sur 18.04, vous devez ajouter une ligne à /etc/default/grub pour lui dire d'où reprendre.

Le 16.04, il n'était pas nécessaire que j'ajoute le paramètre 'resume=' à grub, donc je pense que le changement s'est produit relativement récemment.

Il est probablement préférable d'utiliser l'UUID (Universally Unique Identifier) ​​et vous pouvez utiliser le programme "Disks" pour trouver l'UUID de votre partition d'échange et simplement le copier et le coller à partir de là.

Utilisez sudo nano /etc/default/grub à ajouter à la ligne

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

afin qu'il ait le paramètre de noyau supplémentaire resume=UUID=theUUIDofyourswappartition entre les guillemets.

Le vôtre sera différent, mais dans mon cas, la ligne est :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"

(quitter nano en utilisant Ctrl +x , appuyez sur y pour effectuer les modifications et entrer pour accepter le nom de fichier)

Vous devez exécuter sudo update-grub pour que vos modifications soient effectives, mais lors du prochain redémarrage, vous devriez pouvoir hiberner sans problème.

Pour autant que je sache, la fonctionnalité d'hibernation consiste à reprendre là où vous vous étiez arrêté, elle n'est donc pas conçue pour accéder à l'écran de connexion et demander votre mot de passe.

Je ne sais pas si vous pouvez le modifier pour qu'il vous demande votre mot de passe, mais cela vaut peut-être la peine de poser une question distincte pour voir si quelqu'un d'autre sait quoi faire.

Fichier d'échange

Si vous avez un fichier d'échange au lieu d'une partition d'échange séparée, vous devez également ajouter le supplément resume_offset= paramètre.

Le wiki Arch Linux contient une excellente section à ce sujet, mais en gros, votre fichier d'échange doit se trouver sur la partition principale sur laquelle vous avez installé Ubuntu.

Afin de connaître l'offset à mettre dans resume_offset= vous pouvez ouvrir un terminal et taper

sudo filefrag -v /swapfile

vous obtiendrez quelque chose qui ressemble à ceci :

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...

et vous voulez le premier nombre, dans la première ligne qui est sous physical_offset (dans ce cas 34816 )

Donc, juste à titre d'exemple, en utilisant l'UUID et le décalage physique de ma machine avec un Swapfile, j'ai changé le GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" ligne à être

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=09e601cd-5bac-491a-9115-fda1b2eb4664 resume_offset=34816"

N'oubliez pas d'exécuter sudo update-grub et redémarrez, mais après cela, l'hibernation devrait fonctionner correctement.


Ubuntu
  1. Intégration Nautilus Git ?

  2. Problèmes Docker dans Ubuntu 20.04 ?

  3. Applet de volume sonore manquant ?

  4. sudo -k contre sudo -K

  5. su - utilisateur Vs sudo su - utilisateur

Comment créer un utilisateur Sudo sur Debian

Comment installer Tomcat 9 sur CentOS 7

Installation d'Ubuntu 20.04 Tomcat

Commande Sudo sous Linux

Comment hiberner la fosse focale Ubuntu 20.04 LTS

joli sudo ou sudo sympa ?