How do you hibernate on Ubuntu 20.04?

I searched this online but all articles found are outdated. What should I do to enable hibernation in GNOME?


To enable Hibernation in 20.04:

Increase swapfile size to match RAM size up to 8GB.

  • Check the swap that is in use:

    sudo swapon -s

  • If swap partition(s) found:

    sudo swapoff -a

    sudo nano -Bw /etc/fstab

  • Add "# " before the UUID of the swap partition(s):

    # UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none swap sw 0 0

  • Add a line for the swapfile, if one does not exist:

    swapfile none swap sw 0 0

  • Create the swap file:

    sudo fallocate -l XG /swapfile*

Where X is the swapfile size in GB

    sudo mkswap /swapfile

    sudo chmod 0600 /swapfile

    sudo swapon /swapfile
  • Reboot:

    sudo reboot

Add resume location and offset to grub.cfg:

  • Edit /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"

  • Use UUID from root.

  • Use offset from sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'

  • Update GRUB sudo update-grub

  • Test hibernation sudo systemctl hibernate

A hibernate button can be added using gnome extensions. https://extensions.gnome.org/extension/755/hibernate-status-button/

*There is a slight possibility of getting holes in a swapfile when creating it with fallocate. /var/log/syslog can be searched for the phrase swapon: swapfile has holes to ensure there will be no data loss.

A swapfile can alternatively be created using dd: sudo dd if=/dev/zero of=/swapfile bs=1G count=8 An error when using dd may overwrite your HDD