9 votes

PM : L'image d'hibernation n'est pas présente ou n'a pas pu être chargée

Après avoir hiberné avec systemctl hibernate Le système démarre normalement comme s'il avait été éteint. J'ai le paramètre resume dans la ligne kernel et le hook resume dans mkinitcpio.conf.

Voici les messages pertinents du noyau :

$ dmesg | grep -i swap
[    0.000000] Command line: initrd=\initramfs-linux.img root=/dev/sda2 rw resume=/dev/sda4
[    0.000000] Kernel command line: initrd=\initramfs-linux.img root=/dev/sda2 rw resume=/dev/sda4
[    0.350295] PM: Checking hibernation image partition /dev/sda4
[    8.776686] Adding 8191996k swap on /dev/sda4.  Priority:-1 extents:1 across:8191996k FS
$ dmesg | grep -i hibern
[    0.350295] PM: Checking hibernation image partition /dev/sda4
[    0.350301] PM: Hibernation image not present or could not be loaded.

La seule possibilité restante est donc que systemctl n'a pas écrit sur le disque . En fait, lorsque j'exécute la commande, l'écran devient d'abord vide pendant quelques secondes, puis je peux à nouveau voir mon terminal, et enfin il s'éteint de lui-même.

J'ai lu que pm-utils ne fonctionnait pas très bien avec systemd, donc je ne voudrais pas passer à cela. Des suggestions ?

Gracias.

6voto

Hi-Angel Points 494

Pour développer le commentaire de @AdrianRatnapala, vous devez :

  1. Trouvez l'uuid de votre partition swap. Supposons que la partition soit sdb3, alors

    $ ls -l /dev/disk/by-uuid/ | grep sdb3
    lrwxrwxrwx 1 root root 10 .   9 08:59 1dd7e123-1f82-45f0-a202-0ff3ea6f081a -> ../../sdb3
  2. Ouvrir /etc/default/grub et trouver la ligne commençant par GRUB_CMDLINE_LINUX_DEFAULT=" . Ajouter entre les guillemets resume=/dev/disk/by-uuid/your-swap-uuid . A titre d'exemple :

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/disk/by-uuid/1dd7e123-1f82-45f0-a202-0ff3ea6f081a"
  3. Exécuter en tant que racine update-grub

  4. Un redémarrage est nécessaire pour utiliser la nouvelle ligne de commande du noyau.

0voto

William Dodd Points 1

Je souhaite partager mon succès ici car cela pourrait aider d'autres personnes confrontées à ce problème. En résumé, pour ceux qui veulent passer outre les détails : Après avoir modifié la ligne GRUB_CMDLINE_LINUX_DEFAULT dans le fichier /etc/default/Grub et fait update-Grub, arrêtez et redémarrez complètement la machine avant d'essayer l'hibernation.

Les détails : Je viens d'implémenter avec succès l'hibernation sur l'installation Linux de mon Lenovo ThinkPad T480 (dual boot Debian 9 et Windows) en suivant le conseil ci-dessus d'ajouter un paramètre resume=UUID= à la ligne GRUB_CMDLINE_LINUX_DEFAULT dans /etc/default/Grub. Mais cela n'a pas fonctionné la première fois. J'ai ajouté le paramètre, exécuté update-Grub, et essayé d'hiberner (systemctl-hibernate). Le système a semblé hiberner, mais lorsqu'il a été rallumé, l'image de l'écran précédent est apparue et est restée pendant plusieurs secondes avant que la machine n'affiche l'écran de connexion qui apparaît généralement lors du démarrage initial ; tout le travail effectué avant l'hibernation avait disparu. J'ai finalement remarqué (grep 'command line' syslog) que la ligne GRUB_CMDLINE_LINUX_DEFAULT modifiée n'avait PAS été transmise au noyau. Après plus d'efforts, j'ai découvert qu'un arrêt complet et un redémarrage entraîneraient la transmission de la ligne modifiée (grep 'command line' syslog à nouveau). Après cela, systemctl hibernate a induit l'hibernation comme auparavant, mais à la mise sous tension, l'état précédent de la machine a été restauré correctement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X