Skip to main content

Activer l'hibernation

Sur Pop!_OS

Prérequis

Vérifiez si le noyau prend en charge l'hibernation

cat /sys/power/state

Il devrait figurer disk en option sur la liste.

Vérifiez si un fichier d'échange ou une partition est disponible

free -h

Si Swap est répertorié comme 0, cela signifie qu'un swap n'est pas disponible et doit être créé.

Créer un fichier d'échange

Tuto ici

Configurer l'hibernation

Lister le swap
cat /proc/swaps
  • Le fichier d'échange est généralement répertorié comme /swapfile
  • La partition d'échange est répertoriée comme /dev/sdxx
Swap UUID

Obtenez l'UUID pour le swap

findmnt -no UUID -T /swapfile

Cela ressemble à quelque chose comme ci-dessous :
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Décalage de permutation

Ceci n'est nécessaire que lorsqu'un fichier d'échange est disponible. Obtenez le décalage.

sudo filefrag -v /swapfile | awk '{ if($1=="0:"){print $4} }'

Cela ressemble à quelque chose comme ci-dessous :
9999999..

Mettre à jour les options du noyau

Pour un fichier d'échange

sudo kernelstub -a 'resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx resume_offset=9999999'

En cas de mauvaise manipulation ou mauvais chiffre entré, l'option -d a la place de la -a permet d'effacer l'entrée.
Pour une partition Swap, l'option resume_offset n'est pas nécessaire

sudo kernelstub -a 'resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

Ajouter ci-dessous la ligne à /etc/initramfs-tools/conf.d/resume. Créer le fichier s'il n'est pas présent et ajouter :

Pour un fichier d'échange

resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx resume_offset=9999999

Pour une partition d'échange

resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Mettre à jour les configurations

sudo update-initramfs -u

Tester l'hibernation

N'oubliez pas de sauvegarder votre travail avant d'essayer ceci

sudo systemctl hibernate

Source

Ajouter l'option au menu

Ajouter l'extension system-action-hibernate

Ajouter les lignes suivantes dans /etc/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Enable hibernate 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

Sur Debian, Ubuntu, LinuxMint

Prérequis

Vérifiez si le noyau prend en charge l'hibernation
cat /sys/power/state

Il devrait figurer disk en option sur la liste.

Vérifiez si un fichier d'échange ou une partition est disponible
free -h

Si Swap est répertorié comme 0, cela signifie qu'un swap n'est pas disponible et doit être créé.

Créer un fichier d'échange

Tuto ici

Configurer l'hibernation

Lister le swap
cat /proc/swaps
  • Le fichier d'échange est généralement répertorié comme /swapfile
  • La partition d'échange est répertoriée comme /dev/sdxx
Swap UUID

Obtenez l'UUID pour le swap

findmnt -no UUID -T /swapfile

Cela ressemble à quelque chose comme ci-dessous :
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Décalage de permutation

Ceci n'est nécessaire que lorsqu'un fichier d'échange est disponible. Obtenez le décalage.

sudo filefrag -v /swapfile | awk '{ if($1=="0:"){print $4} }'

Cela ressemble à quelque chose comme ci-dessous :
9999999..

Mettre à jour les options du noyau

Pour un fichier d'échange
Rajouter ces options dans /etc/default/grub et rajouter au niveau de la ligne GRUB_CMDLINE_LINUX_DEFAULT=

resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx resume_offset=9999999

Pour une partition Swap, l'option resume_offset n'est pas nécessaire

resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Ajouter ci-dessous la ligne à /etc/initramfs-tools/conf.d/resume. Créer le fichier s'il n'est pas présent et ajouter :

Pour un fichier d'échange

resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx resume_offset=9999999

Pour une partition d'échange

resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Mettre à jour les configurations

sudo update-initramfs -u && sudo update-grub

Tester l'hibernation

N'oubliez pas de sauvegarder votre travail avant d'essayer ceci

sudo systemctl hibernate

Source

Ajouter l'option au menu

Ajouter l'extension pour Gnome system-action-hibernate

Ajouter les lignes suivantes dans /etc/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Enable hibernate 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