(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
- Complètement supprimé pm-utils et uswsusp , puis
sudo update-initramfs -c -k all
etreboot
Après que cette tentative d'hibernation se soit terminée par un démarrage en mode minimal au lieu de reprendre. Alors
- 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
- 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.