Hibernation sur mon Ubuntu 18.04 ne fonctionne pas immédiatement (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 peux malheureusement pas me souvenir de ce que j'ai fait.
Mais maintenant:
Sudo hibernate
met en veille le système avec succès et l’état du système est restauré au prochain démarrage, sauf que l’écran de connexion ne s’affiche pas, ce qui n’est pas correct. Et si plusieurs applications sont en cours d'exécution qu'après cette reprise, le système risque d'être gelé pendant 20 minutes au maximum (je vois les fenêtres des applications, le pointeur de la souris peut être déplacé, 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 efface le noeud orphelin et enfin, un démarrage en mode minimal, comme s'il n'y avait pas eu de veille prolongée.
S'il vous plaît, aidez-moi à clarifier le problème et à activer l'hibernation dans l'interface graphique.
En même temps, suspendre en mémoire et reprendre de la mémoire fonctionne sans problème, , y compris l’écran de connexion lors de la reprise .
La question principale 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 = "CV de démarrage silencieux =/dev/sda5" GRUB_CMDLINE_LINUX = ""
et
$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume
Finalement, j'ai réussi à mettre l'hibernation au travail. Tant que je ne comprends pas bien le sujet, je vais plutôt décrire ce que j'ai fait. Alors
Sudo update-initramfs -c -k all
et reboot
Après cette tentative d'hibernation, le démarrage en mode minimal a abouti au lieu de reprendre. Donc alors
dans /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT = "CV de démarrage silencieux = UUID = 2c8ec945-6967-4538-93ef-49eb4df6f2a1"
dans /etc/initramfs-tools/conf.d/resume
RESUME = UUID = 2c8ec945-6967-4538-93ef-49eb4df6f2a1
puis
$ Sudo initramfs -c -k all
$ Sudo update-grub
$ reboot
Après cela Sudo systemctl hibernate
et CV ont réussi mais sans écran de connexion, donc
Maintenant, lorsque j'appuie sur le bouton d'alimentation, le système passe en veille prolongée, puis est restauré via l'écran de connexion.
Merci beaucoup à toutes les personnes impliquées
PD: Maintenant, j'ai trouvé une solution encore meilleure - utiliser un fichier d'échange
Je l’ai vérifiée sur une nouvelle installation de bureau Ubuntu 18.10 et je suppose qu’elle fonctionne également avec une nouvelle installation de bureau 18.04 car ils utilisent tous deux le fichier swap par défaut, c’est-à-dire qu’ils n’allouent pas 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 convient donc de l'augmenter.
La description complète est par exemple ici .
Il y a deux excellentes réponses aux questions d'hibernation avec un peu plus de détails ici:
Petite forêt ancienne Kami répond à: buntu 18.04 ne peut pas reprendre après une veille prolongée
Réponse de Zanna à: Comment puis-je hiberner sur Ubuntu 16.04?
Je n'utilise pas normalement Hibernate, mais je tentais de l'utiliser récemment tout en recherchant un bogue et je me suis rendu compte que pour pouvoir travailler sur 18.04, vous devez ajouter une ligne à/etc/default/grub afin de lui indiquer où reprendre.
Le 16.04, il n'était pas nécessaire pour moi d'ajouter le paramètre 'resume =' à grub, je pense donc que le changement est intervenu relativement récemment.
Vous ferez probablement mieux d'utiliser l'UUID (identificateur unique universel) et pourrez utiliser le programme 'Disks' pour connaître l'UUID de votre partition de swap et simplement le copier et le coller à partir de là.
Utilisez Sudo nano /etc/default/grub
pour 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.
La vôtre sera différente, mais dans mon cas, la ligne est la suivante:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"
(quittez nano en utilisant Ctrl+x, presse y faire les changements et enter accepter le nom du fichier)
Vous devez exécuter Sudo update-grub
pour que vos modifications prennent effet, mais lors du prochain redémarrage, vous devriez pouvoir passer en veille prolongée sans problèmes.
Autant que je sache, la fonctionnalité de veille prolongée est de reprendre là où vous l'avez laissée, elle n'est donc pas conçue pour accéder à l'écran de connexion et vous demander votre mot de passe.
Je ne sais pas si vous pouvez le changer pour qu'il vous demande votre mot de passe, mais il pourrait être intéressant de poser une question distincte pour voir si quelqu'un d'autre sait quoi faire.
Si vous avez un fichier d'échange au lieu d'une partition d'échange séparée, vous devez également ajouter le paramètre supplémentaire resume_offset=
.
Le Arch Linux Wiki a ne très bonne section à ce sujet mais, fondamentalement, votre fichier d'échange doit se trouver sur la partition principale sur laquelle Ubuntu est installé.
Pour connaître le décalage à 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 numéro, dans la première ligne qui est sous physical_offset
(dans ce cas, 34816
)
Ainsi, à titre d'exemple, en utilisant l'UUID et le décalage physique de ma machine avec un fichier d'échange, j'ai modifié la ligne GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
pour qu'elle soit
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 de redémarrer, mais après cela, le mode veille prolongée devrait fonctionner correctement.